如何从外部静态html页面向Rails应用程序提交表单内容?

时间:2013-04-16 04:09:26

标签: html ruby-on-rails ruby

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

外部遗留应用中的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应用程序中的代码是用于在用户控制器中创建的[标准noob scaffolded]方法:

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应用程序创建了一个新用户记录,但name字段的值为空。我忽略了什么会正确加载指定的名称字段值?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

只需替换此行,

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

这是因为在以下陈述中

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

您正在传递目前为空白的params [:user]。这需要包含用户属性。我建议您检查Web日志以检查参数列表。你也可以在firebug net panel中做同样的事情。

希望这有帮助!