2016-02-26 1 views
0

У меня есть информация, которая передается методу контроллера, но не сохраняется в БД. Я хочу получить доступ к этой информации, которая передается методу контроллера в целом, но это все отдельные данные, как вы увидите ниже.Передача информации контроллеру через params (не сохранение его в db). Как помещать его внутри хеша, как пользовательские параметры hash

Вот это Титулы:

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, как hash для 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 хэш внутри 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 %> 
Смежные вопросы