0

私は基本的にRails form_forを作成しようとしていますが、単にパラメータを変えません。サーバーログを確認したところ、パラメーターを受け取りましたが、作成機能でキャプチャできませんでした。メソッドの作成保存に関するandrewperkのチュートリアル (http://www.youtube.com/watch?v=unq1yubL6lQ)を見ています。私は何が間違っている可能性がありますか?. これが私のユーザーコントローラーです。

 def new
    @user=User.new
  end
  def create
    @user=User.new(params[:user])
    if @user.blank?
      render :new
    else
      @user.save
      render :index
    end
  end

これが私のフォームです。

<h1>Add an available user</h1>

    <%= form_for @user do |a| %>
        <p>
            <%= a.label :name %>
            <%= a.text_field :name %>
        </p>
        <p>
            <%= a.label :surname %>
            <%= a.text_field :surname %>
        </p>
        <p>
            <%= a.submit "Add new available user"%>
        </p>
    <% end %>
4

1 に答える 1

2

HTML フォーム フィールドはデフォルトでこのように命名されているため、コントローラでを使用する必要がありparams[:user]ます (ページ ソースを確認できます)。

createまた、メソッドを少しリファクタリングすることをお勧めします。レコードを作成した後、単にレンダリングするのではなく、インデックス ページにリダイレクトするのが慣習です。

def create
  @user = User.new(params[:user])
  if @user.save
    redirect_to users_path
  else
    render :new
  end
end
于 2012-09-19T20:40:39.317 に答える