我有传递给控制器方法但未保存到数据库的信息。我想访问这个信息,它作为一个整体哈希传递给控制器方法,但它是所有单独的数据,如下所示。
这是params:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"0O7pbNNrddHCyPL9B/avUUD85574rFBfS57h+aWKK/mBakPSn5iHJKHhPmvuJVfyWxjBsAQn2kagwkTOALEKRg==", "page"=>{"content_top"=>"", "content_bottom"=>""}, "header1"=>"iijijij", "column1"=>"ijijijij", "header2"=>"", "column2"=>"", "header3"=>"", "column3"=>"", "header4"=>"", "column4"=>"", "commit"=>"Save", "guide_id"=>"dungeon-boss", "category_id"=>"heroes", "id"=>"link-skill"}
正如您所看到的那样,有一个page
哈希,之后是header1
column1
header2
column2
...依此类推。使用header1
信息,我试图将它放在params哈希中,就像page
哈希对其中传递的值一样。所以它就像"table" =>{"header1"=>"iijijij", "column1"=>"ijijijij", "header2"=>"", "column2"=>"", "header3"=>"", "column3"=>"", "header4"=>"", "column4"=>""}
我确信我需要在表单中添加一些内容,以便知道如何将它们分组。这是我目前的表格
<% if (current_user.mod_of_game?(@guide) unless current_user.nil?) %>
<%= form_for([@category, @page], url: update_pages_path) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :content_top, "Top Content" %>
<%= f.text_area :content_top, :class => 'editor' %>
<%= f.label :content_bottom, "Bottom Content" %>
<%= f.text_area :content_bottom, :class => 'editor' %>
<!-- to be in one hash when passed -->
<%= text_field_tag :header1 %>
<%= text_field_tag :column1 %>
<%= text_field_tag :header2 %>
<%= text_field_tag :column2 %>
<%= text_field_tag :header3 %>
<%= text_field_tag :column3 %>
<%= text_field_tag :header4 %>
<%= text_field_tag :column4 %>
<!-- end -->
<%= f.submit "Save" %>
<% end %>
我无法找到我需要添加的内容,以使text_field_tag
数据在传递时都在一个哈希中。(text_field_tag
故意不在表单提交时保存到数据库中,它只需要传递给方法并在哈希中分组)
答案 0 :(得分:1)
如何使用fields_for
这样
<%= form_for([@category, @page], url: update_pages_path) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :content_top, "Top Content" %>
<%= f.text_area :content_top, :class => 'editor' %>
<%= f.label :content_bottom, "Bottom Content" %>
<%= f.text_area :content_bottom, :class => 'editor' %>
<!-- to be in one hash when passed -->
<%= f.fields_for :table do |t| %>
<%= t.text_field_tag :header1 %>
<%= t.text_field_tag :column1 %>
<%= t.text_field_tag :header2 %>
<%= t.text_field_tag :column2 %>
<%= t.text_field_tag :header3 %>
<%= t.text_field_tag :column3 %>
<%= t.text_field_tag :header4 %>
<%= t.text_field_tag :column4 %>
<% end %>
<!-- end -->
<%= f.submit "Save" %>
<% end %>
答案 1 :(得分:0)
如果要在params
密钥内的page
哈希中发送不属于该模型的数据,则可以使用数组方式。方法如下:
<%= text_field_tag 'page[header1]' %>
不仅如此,如果您想使用其他密钥,您也可以使用它,例如<%= text_field_tag 'custom_key[header1]' %>