我基本上是想创建一个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 %>
答案 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