Rails5.1.3でWebアプリケーション制作の勉強中です。
ものすごく初歩的な質問になります。
Scoresテーブルがあり、そのカラムにsc_10というのがあります。そのカラム値を書き換えする場合、モデル側とコントローラ側の
どちらにコードを記述するべきなのでしょうか?少々複雑に算出する値なのでコードが長くなってしまうので
出来ればモデルに記述したいのですが、モデル側でランダムな値(id)を取得する方法がわからないのでです。
ランダムな値とは、現在ログイン中の主キーのことになります。
コントローラ側では current_customer.id で現在ログイン中のidを取得出来るのですが、モデル側ではどうやって
現在ログイン中のidを取得するのでしょうか?
実際にはもっと複雑になるのですが簡単に記述しました。
CustomersテーブルとScoresテーブルは1対1の関係にあります。
class Score < ActiveRecord::Base belongs_to :customer bbb = Score.find_by(customer_id: 2) bbb.sc_10 = 1003 bbb.save end
モデル側でScore.find_by(customer_id: 2) のように、ダイレクトに id を指定してやるとscoresテーブルのcustomer_id 2の
レコードのsc_10カラム の値が1003で更新され保存されます。
フォームから送られてきた値で更新したりするのはedit, updateアクションでいいのでしょうが、フォームとは関係ないところで
算出するので算出式をどちらに記述するべきなのかアドバイスをいただけないでしょうか?
モデル側で現在ログイン中のidを取得するにはどうしたらいいのでしょうか?教えてくださるよう宜しくお願いします。
自分の現状は、コントローラにコードが集中して記述されていてモデル側がスカスカの状態です。
もし、よろしければ個人差はあると思いますが、モデル側にはどんな内容を記述しているのかも教えていただければ
今後の参考にさせていただきますのでお願いします。
bbb = Score.find_by(customer_id: current_customer.id)とモデル側に記述するとエラーになってしまいます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/23 08:42