ruby:message.rb
1class message < ApplicationRecord 2 belongs_to :user 3 4 validates :title, presence: true 5 validates :content, presence: true 6 7 before_create do 8 user.messages.update_all('notice = notice + 1 ') 9 end
messagesコントローラーのcreateアクションが呼ばれる前に
before_createを使って
メッセージに基づくuserのmessagesを全部取得してupdateをかけています。
しかしこのbefore_createの中では
いきなり
user.messagesでmessageに基づくuserのmessagesが全て取ってこれています。
本来ならcurrent_user.messages.~~にしようかと思っていたのですが、これもcurrent_userがundefined methodで怒られてしまいました。
何故この記述でデータが取ってこれているのでしょうか?
追記
def new @message = Message.new end def create @message = Message.new(message_params) if @message.save redirect_to messages_path else render :new end end private def message_params params.fetch(:message, {}).permit(:title, :content).merge(user_id: current_user.id)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/14 01:34
2017/04/14 02:53
2017/04/17 01:45
2017/04/17 09:59 編集
2017/04/18 04:59