Mam aplikację rails Próbuję skonfigurować sortable list przy użyciu wtyczki acts_as_list. Pole pozycji w db jest aktualizowane, ale kiedy strona jest renderowana, zamówienie nie jest brane pod uwagę. Szukam chyba jakiejś pomocy.Używanie acts_as_list z has_many: through in rails
Oto moje modele ...
class QuestionMembership < ActiveRecord::Base
belongs_to :form
belongs_to :question
acts_as_list
end
class Form < ActiveRecord::Base
has_many :question_memberships
has_many :questions, :through => :question_memberships
end
class Question < ActiveRecord::Base
has_many :question_memberships
has_many :forms, :through => :question_memberships
acts_as_list
end
A niechlujny kod pogląd, że daje mi listę ...
<% @form.question_memberships.each do |qm| %>
<% q_id = "question_#{qm.id}" %>
<li class="question" id=<%= q_id %> >
<div style="color: #999; font-size: 8pt">
<%=h qm.question.content %>
</div>
</li>
<%= draggable_element(q_id, :revert=>true) %>
<% end %>
przeciągnij i upuść działa do zmiany kolejności. Wartość pozycji aktualizuje się w DB dla obiektów QuestionMembership, a strona faktycznie pokazuje prawidłową zmianę kolejności. Problem polega na tym, że po przeładowaniu strony domyślnie powraca do dowolnej kolejności. Myślę, że domyślnie jest to identyfikator zapytania dla zamówienia zamiast pozycji pozycja_pytania, ale nie jestem pewien.
Jakieś pomysły dotyczące tego, w jaki sposób mogę sprawić, by faktycznie zamawiał się na początkowym renderingu w polu pozycji w QuestionMembership?
w tym przypadku jest atrybut pozycji w modelu pytań i modelu formularza? – Paul
Tak, atrybut pozycji jest po prostu kolumną w tabeli łączenia. –