我是铁杆和红宝石的新手。我尝试制作一个简单的项目并遇到这个问题。我有一个视图,其中有一些文本字段,当我按下提交按钮时,在我的控制器中我需要这个字段中的值作为字符串,我尝试这种方式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 %>
答案 0 :(得分:6)
params[:field1]
是正确的方法。
你的参数是哈希:
params => {"field1"=>"some_value"}
所以要获得field1
,您应该致电params[:field1]
<强> UPD 强>
对于你的结构(这是非常糟糕的)你应该这样称呼params:
params[:field1][:field1]
params[:field2][:field2]
最好在您的案例中使用text_field_tag
和password_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_attributes
或create
。