前提・実現したいこと
ruby on rails を使って買い物をする前にメモとして確認できるようなWebアプリを作成したい。
発生している問題・エラーメッセージ
Fruitモデルで保存したデータを他のモデルであるNoteモデルに追加することが出来ない。そもそも試したやり方が正しいのかも不明。
該当のソースコード
ソースコード
試したこと
ruby on rails 入門書を読み込んで自作アプリの制作中です。
Fruitモデルとfruitsコントローラを作成して以下のような画面の状態までは作ることが出来ました。
food項目にある商品をクリックするとshowアクションが実行され、EditとDeleteも問題なく実行することが出来ます。
実現したいことは、ここにあるaddの項目をクリックすると、別のモデルであるNoteモデルに追加する機能を実装したいと思っています。
参考にFruitモデルとfruitsコントローラのコードを以下に載せます。
ruby
1#xxx_create_fruits.rb 2 3class CreateFruits < ActiveRecord::Migration[6.0] 4 def change 5 create_table :fruits do |t| 6 t.integer :food_id 7 t.text :food 8 t.integer :price 9 t.text :number 10 t.text :message 11 12 t.timestamps 13 end 14 end 15end 16
ruby
1#fruits_controller.rb 2 3class FruitsController < ApplicationController 4 def index 5 @msg = 'Fruit data.' 6 @data = Fruit.all 7 end 8 9 def show 10 @msg = "Index data." 11 @fruit = Fruit.find(params[:id]) 12 end 13 14 def add 15 @msg = "Index data." 16 @fruit = Fruit.new 17 end 18 19 20 def create 21 @fruit = Fruit.new fruit_params 22 if @fruit.save then 23 redirect_to '/fruits' 24 else 25 render 'add' 26 end 27 end 28 29 def edit 30 @msg = "edit data.[id = " + params[:id] + "]" 31 @fruit = Fruit.find(params[:id]) 32 end 33 34 def update 35 @fruit = Fruit.find(params[:id]) 36 if @fruit.update(fruit_params) then 37 redirect_to '/fruits' 38 else 39 render 'edit' 40 end 41 end 42 43 def delete 44 obj = Fruit.find(params[:id]) 45 obj.destroy 46 redirect_to '/fruits' 47 end 48 49 private 50 def fruit_params 51 params.require(:fruit).permit(:food_id,:food,:price,:number,:message) 52 end 53 54end 55
Noteモデルとnotesコントローラーのコードは以下のとおりです。
ruby
1#xxx_create_notes.rb 2 3class CreateNotes < ActiveRecord::Migration[6.0] 4 def change 5 create_table :notes do |t| 6 t.integer :shopping_id 7 t.text :product 8 t.integer :price 9 t.text :number 10 t.text :message 11 12 t.timestamps 13 end 14 end 15end 16
ruby
1#notes_controller.rb 2 3class NotesController < ApplicationController 4 def index 5 end 6 7 def show 8 end 9end 10
以上の状態でどこに、どのようなコードを記載すれば実現できるのか、もしくはそもそもモデルの情報を他のモデルに追加することは出来ないのか、その辺を踏まえてご教授いただければと思います。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
windows 10
回答1件
あなたの回答
tips
プレビュー