Rails:form_for不会转换参数

时间:2012-09-19 20:37:24

标签: ruby-on-rails forms post

我基本上是想创建一个Rails form_for ,但它根本不会转动参数。我检查了服务器日志,它接收参数但无法在create函数上捕获。我正在观看 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 %>

1 个答案:

答案 0 :(得分:2)

您应该在控制器中使用params[:user],因为这是HTML表单字段默认命名的方式(您可以检查页面源)。

另外我建议稍微重构create方法。您可以重定向到索引页面而不是仅在创建记录后呈现它。

def create
  @user = User.new(params[:user])
  if @user.save
    redirect_to users_path
  else
    render :new
  end
end