0

我在外部遗留 [coldfusion] 系统上有一个 html 表单,我想在我的新 Rails 应用程序中提交给我的用户控制器中的 create 方法 - 不幸的是,我是一个 Rails 菜鸟,一无所知。

外部遗留应用程序中的 html 是:

<form action="http://floating-caverns-7335.herokuapp.com/users" method= "post">
<input type="text" name="name" value="nametestvalue">
<input type="submit" name="Submit" value="testROR">

rails 应用程序中的代码是在用户控制器中创建的 [标准菜鸟脚手架] 方法:

def create
    @user = User.new(params[:user])
    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render json: @user, status: :created, location: @user }
      else
        format.html { render action: "new" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

当我执行第一个 html 代码时,rails 应用程序创建了一个新的用户记录,但名称字段的值为空白。我忽略了什么会正确加载指定的名称字段值?

4

2 回答 2

1

您可以看到正在使用 params[:user] 创建一个新用户。因此,您需要将这样的用户哈希发送:user => { name: "an user"}到服务器,然后更改输入名称属性:

<input type="text" name="user[name]" value="nametestvalue">

于 2013-04-16T04:20:06.380 回答
0

Just replace this line,

<input type="text" name="user[name]" value="nametestvalue">

This is because in following statement

@user = User.new(params[:user])

you are passing params[:user] which is currently blank. This need to contain user attributes. I will suggest you to inspect web logs to check parameter list. You can do the same in firebug net panel as well.

Hope this helps!

于 2013-04-16T04:12:08.520 回答