从表格参数中获取数据

时间:2011-03-10 10:30:51

标签: ruby-on-rails ruby-on-rails-3

我是铁杆和红宝石的新手。我尝试制作一个简单的项目并遇到这个问题。我有一个视图,其中有一些文本字段,当我按下提交按钮时,在我的控制器中我需要这个字段中的值作为字符串,我尝试这种方式params[:field1],但值是这种格式{“field1 “=>”some_value“},它不是一个字符串,我遇到了问题。我该如何解决?

UP: 查看代码

<%= form_tag :action=>:login_user do %>
    <div class="field">
        <h2>Login</h2>
        <%= text_field "field1", "field1" %>
    </div>

    <div class="field">
        <h2>Password</h2>
        <%= password_field "field2", "field2" %>
    </div>

    <div class="actions">
        <%= submit_tag "Login" %>
    </div>

    <% end %>

3 个答案:

答案 0 :(得分:6)

params[:field1]

是正确的方法。

你的参数是哈希:

params => {"field1"=>"some_value"}

所以要获得field1,您应该致电params[:field1]

<强> UPD

对于你的结构(这是非常糟糕的)你应该这样称呼params:

params[:field1][:field1]
params[:field2][:field2]

最好在您的案例中使用text_field_tagpassword_field_tag

<%= text_field_tag :field1 %>
<%= password_field_tag :field2 %>

答案 1 :(得分:5)

尝试这样使用:

<%= text_field_tag "field1" %>
<%= password_field_tag "field2" %>

答案 2 :(得分:1)

使用您粘贴的代码,您必须以params[:field1][:field1]params[:field2][:field2]的形式访问它。所以Ashish建议你应该使用text_field_tag。或者以传统的Rails方式,使用form_for将字段绑定到单个键并使用update_attributescreate