2

何らかの理由で、フォーム データを渡すと、データベースに nil として保存されます。私はRails 4を使用しており、強力なパラメータを使用しており、サーバーによればすべてがうまく見えますが、最終的にはnilとして保存されます。すべてのヘルプは大歓迎です。私はレールが初めてで、これには困惑しています。また、現在、これを機能させるためのモデルの検証も行っていません。

コントローラーコード

デフォルト作成
    @movie = Movie.new(params[movie_params])
    @movie.save の場合
       redirect_to @movie
    そうしないと
      flash[:error] = "保存しませんでした"
      「新規」をレンダリング
    終わり
  終わり

プライベート def movie_params params.require(:movie).permit(:title, :rating) 終わり

フォームコード
<%= form_for(@movie) do |f| %>
    <%= f.label :title %>
    <%= f.text_area :タイトル %>
    <%= f.label :評価%>
    <%= f.text_area :評価%>
    <%= f.submit "送信" %>
<%終了%>

4

1 に答える 1

11

変化する:

@movie = Movie.new(params[movie_params])

に:

@movie = Movie.new(movie_params)

movie_paramsparams既にのサブセットであるため、params再度渡す理由はありません。これを行うと、キーの検索が欠落します (nil発見したとおりに返されます)。

于 2013-05-30T04:10:44.443 に答える