.save

セーブがしたいんです…

レビューの反省 2016 12 19

@groupだとgroupのインスタンスが入っている様に見えてしまうので変数名を変えましょう

 

def create
  @message = Message.new(create_params) #入力された値を保存する
  @group = params[:group_id] #リダイレクトをするために、現在のページのgroup_idを取得する

 

・save!は保存に失敗したときに例外を発生させます。単純にfalseが返ってきて欲しい時はsaveを使いましょう

参考

d.hatena.ne.jp

 

・elseの後、改行しましょう

 

@group = params[:group_id] #リダイレクトをするために、現在のページのgroup_idを取得する
if @message.save!
redirect_to group_path(@group)
else redirect_to :back, alert: 'メッセージを入力してください'

 

・permitでuser_id、group_idを許すのか、mergeでuser_id、group_idを加えるのかどちらかにしましょう。

 

def create_params
params.require(:message).permit(:message, :user_id, :group_id).merge(user_id: current_user.id, group_id: params[:group_id])