私の create アクションでは、メソッド new は create のように機能します。
def create
@page = Page.new(params[:page].merge(:user_id => current_user.id ))
if @page.save
flash[:notice] = t("success")
redirect_to pages_path
else
render :new
end
end
パラメータで new を使用しているときに、ActiveRecord はデータベースに新しいオブジェクトを作成します。Page.new は、コントローラーの新しいアクションで正常に動作します。その理由は何ですか?私のモデルにはオーバーライドされたメソッド new はなく、コールバック (before_save、before_create など) もありません。どんな助けでも大歓迎です。
UPDATE - デバッガーからのコード
.../app/controllers/pages_controller.rb:48
@page = Page.new(params[:page].merge(:user_id => current_user.id ))
(rdb:25) @page
nil
(rdb:25) n
.../app/controllers/pages_controller.rb:49
if @page.save
(rdb:25) @page
#<Page id: 80 ... >
(rdb:25) Page.last
#<Page id: 80 ... >
(rdb:25) @page.save
false