Ruby on rails 如何将文本字段映射到Rails 3中的哈希对象字段?

Ruby on rails 如何将文本字段映射到Rails 3中的哈希对象字段?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,请参考代码 <%= form_tag(:action => "create_user", :method => "post") do%> <p><label for="first_name">First Name</label>: <%= text_field 'json_parsed', 'first_name') %></p> <p><label for="middle_na

请参考代码

    <%= form_tag(:action => "create_user", :method => "post") do%>
<p><label for="first_name">First Name</label>:
    <%= text_field 'json_parsed', 'first_name') %></p>
<p><label for="middle_name">Middle Name</label>:
    <%= text_field 'json_parsed', 'middle_name') %></p>
<p><label for="last_name">Last Name</label>:
    <%= text_field 'json_parsed', 'last_name') %></p>
    <% @contact = @json_parsed["contact"] %>
<p><label for="last_name">Email</label>:
    <%= text_field 'contact','email']) %></p>
<p><label for="last_name">Phone</label>:
    <%= text_field 'contact', 'phone_no') %></p>
<%= submit_tag "Create" %>
<% end %>
“创建用户”:方法=>“发布”)do%>
名字:

中间名:

姓氏:

电邮:

电话:

这里,“
json\u parsed
”是我在
json\u decode
之后得到的哈希对象<代码>第一名/中间名/etc。是该散列对象中的所有字段。现在我想在text_字段中获取这些值。但它给出了一个错误“未定义的散列方法”
的名字


如何将散列中的值直接显示到文本字段中?

不能将文本字段用于散列对象。它可以用于模型对象(具有名称为您调用的方法的对象,例如,
@json\u parsed
应该具有方法的第一个名称,以便我们可以调用
@json\u parsed.first\u name
)。对于hash,我们不能这样称呼它。所以,您应该像这样使用text\u field\u标记

<%=text_field_tag 'json_parsed[first_name]', :value => @json_parsed["first_name"]%> 
<p><label for="last_name">Email</label>:
<%= fields_for @json_parsed.contact do |p|%
    <%= p.text_field 'email'%></p>
<p><label for="last_name">Phone</label>:
    <%= p.text_field 'phone_no') %></p>
然后用它来制作物体

@json_parsed = Hashit.new(json_parsed_hash)
并像刚才一样在视图中使用它。有关Hashit的更多详细信息,请参阅此

对于联系人哈希,您应该这样使用它

<%=text_field_tag 'json_parsed[first_name]', :value => @json_parsed["first_name"]%> 
<p><label for="last_name">Email</label>:
<%= fields_for @json_parsed.contact do |p|%
    <%= p.text_field 'email'%></p>
<p><label for="last_name">Phone</label>:
    <%= p.text_field 'phone_no') %></p>
电子邮件:
“创建用户”}do | f |%>
名字:

中间名:

姓氏:

电邮:

电话:


查看我的哈希对象包含:{“first_name”=>“Aashish”,“middle_name”=>“Shrikant”,“last_name”=>“Pathak”,“contact”=>{“email”=>“aashish@gslab.com“,“phone_no”=>“9922582272”},“profile”=>{“age”=>“22”,“ht”=>“175”,“wt”=>“67”}我已经试着像你说的那样将其转换为类对象。但它给出的错误是“undefined method[]in Hashit”。如果您查看hash对象,它是嵌套的。基本上这就是我从一个网络服务中得到的。现在,我想将相同的结构发送回其他Web服务以保存新数据。您应该将
行编辑为
,并使用
字段作为联系人。我将编辑我的答案。如果在提交此表单时调用params[:json_parsed],您将得到相同的结构。实际上,require model对象的字段_,我没有。这是行不通的。但是是的,你的第一个解决方案确实对我有用。谢谢你:)