0

我基本上是在尝试创建一个 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 %>
4

1 回答 1

2

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

另外我建议稍微重构一下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 回答