Szyny: Jak zrobić to forma przedstawienia tablicę rekordów?

głosy
0

Muszę zrobić formularz, który przedstawi tablicę rekordów. Używam szyn 2.3.11 i stara się postępować zgodnie z instrukcjami zawartymi w jeden do wielu sekcji tutaj: http://api.rubyonrails.org/v2.3.8/classes/ActionView/Helpers/FormHelper.html

Jednak kiedy to robię, dostaję błędy lub forma podnosi tylko ostatni rekord w tablicy.

To nie działa, ponieważ @query [: filtry] jest macierzą, tak fields_for rzuci wyjątek:

  <% form_for :aquery, @query, :url => {:action => 'index'} do |a| %>
    <% a.fields_for :filters, @query[:filters] do |f| %>
      <p>
        <%= f.select :field, @fields %>
        <%= f.select :logic, [all, is, is not, none]%>
        <%= f.text_field :arg, :size => 30 %>
      </p>
    <% end %>
    <%= submit_tag l(:button_apply) %>
  <% end %>

To nie działa, ponieważ ignoruje zawartość @query [: publikacje], a jedynie świadczy jeden zestaw pól niezależnie od tego, jak duża tablica jest:

    <% a.fields_for :filters do |f| %>

I to nie działa, ponieważ będzie on złożyć tylko ostatni element w tablicy:

<% form_for :aquery, @query, :url => {:action => 'index'} do |a| %>
  <% @query[:filters].each do |filter| %>
    <% a.fields_for :filters, filter do |f| %>
      <p>
        <%= f.select :field, @fields %>
        <%= f.select :logic, [all, is, is not, none]%>
        <%= f.text_field :arg, :size => 30 %>
      </p>
    <% end %>
  <% end %>
  <%= submit_tag l(:button_apply) %>
<% end %>
Utwórz 02/06/2011 o 21:42
użytkownik
W innych językach...                            


1 odpowiedzi

głosy
2

Trzeba przejechać filtrów i zrobić indeksowania ręcznie.

<% form_for :aquery, @query, :url => {:action => 'index'} do |a| %>
  <% @query[:filters].each_with_index do |filter, i| %>
    <% a.fields_for :filters, filter, :index => i do |f| %>
      <p>
        <%= f.select :field, @fields %>
        <%= f.select :logic, ["all", "is", "is not", "none"]%>
        <%= f.text_field :arg, :size => 30 %>
      </p>
    <% end %>
  <% end %>
  <%= submit_tag l(:button_apply) %>
<% end %>
Odpowiedział 02/06/2011 o 22:15
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more