Tworzę własny widok niestandardowy, który sprawia, że proces tworzenia skojarzonych modeli jest mniej bolesny dla moich użytkowników. Chcę wyświetlić wszystkie powiązane z modelem elementy w linii z elementami sterującymi, aby je edytować. Jest to dość łatwe do samodzielnego użycia w podstawowych polach, ale wolę używać częściowej dla skojarzeń modelu liniowego, ale nie mogę znaleźć żadnej dokumentacji, która by to zrobiła.Użyj formularzy rails_admin w niestandardowych widokach?
Odpowiedz
Jest tam fajny klejnot, który robi to, co chcesz. Nazywa się Nested Form Fields. Pozwala na edycję rekordów (wraz z ich has_many asocjacji) na jednej stronie. Fajną rzeczą jest to, że nawet używa jQuery do dynamicznego dodawania/usuwania pól formularza bez przeładowywania strony. Kupowanie klejnotów docs w celu prawidłowego użycia. Mam nadzieję, że pomaga!
Można użyć Nested Form
Rozważmy klasę użytkownika, która zwraca tablicę instancji projekt z metodą czytnika projekty i odpowiada na projects_attributes = metoda Scenariusz:
class User
def projects
[@project1, @project2]
end
def projects_attributes=(attributes)
# Process the attributes hash
end
end
nocie że projects_attributes = pisarz metoda jest w istocie wymagana dla fields_for do poprawnej identyfikacji: projekty jako kolekcja i poprawne indeksy do ustawienia w postaci znaczników.
Kiedy projektów jest już stowarzyszenie na użytkownika można użyć accepts_nested_attributes_for zdefiniować metodę pisarz dla Ciebie:
class User < ActiveRecord::Base
has_many :projects
accepts_nested_attributes_for :projects
end
Model ten może być teraz używany z zagnieżdżonego fields_for. Blok podane do zagnieżdżonego fields_for rozmowy będzie powtarzany dla każdego wystąpienia w kolekcji:
<%= nested_form_for @user do |user_form| %>
...
<%= user_form.fields_for :projects do |project_fields| %>
<% if project_fields.object.active? %>
Name: <%= project_fields.text_field :name %>
<% end %>
<% end %>
...
<% end %>
Tu idzie Reference szczegóły.
Czy masz przykład tego, co napisałbym, aby przetworzyć mieszanie atrybutów w tym przykładzie? – pappy
Dam ci nagrodę, jeśli dodasz przykład używając zagnieżdżonych pól formularzy. – max