2016-02-26 28 views
0

我傳遞給控制器​​的方法,但不保存到數據庫信息。我想訪問這個信息,它作爲一個整體散列傳遞給控制器​​方法,但它是所有單個數據,如下所示。通過params傳遞信息給控制器(不保存到數據庫)。如何把它的哈希裏面喜歡的網友PARAMS哈希

這裏是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散後,它是header1column1header2column2 ...等等。隨着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

如果你想發送不屬於該模型的數據,你可以簡單地使用數組方式,在params hash裏面輸入page鍵。具體方法如下:

<%= text_field_tag 'page[header1]' %>  

不僅如此,如果你想使用其他鍵,您可以使用,以及像<%= text_field_tag 'custom_key[header1]' %>

+0

如果我想把它發送到另一個密鑰?會在這些字段中的每個字段上放置<%= text_field_tag'table [header1]'%>'標記將它們放在「表」哈希中? – Rob

+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 %>