gpt4 book ai didi

ruby-on-rails - 将 acts_as_list 与 has_many 一起使用 :through in rails

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:36 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,我正在尝试使用 acts_as_list 插件设置可排序列表。数据库中的位置字段正在更新,但是在呈现页面时,不考虑顺序。我想我是在寻求帮助。

这是我的模型...

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

还有给我列表的草率 View 代码...

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

拖放用于重新排序。数据库中 QuestionMembership 对象的位置值更新,页面实际上正确显示重新排序。问题是在页面重新加载时,它默认返回到它感觉的任何顺序。我认为它默认为订单的问题 id 而不是 question_membership 位置,但我不确定。

关于如何通过 QuestionMembership 的位置字段在初始渲染上实际排序有什么想法吗?

最佳答案

最终版本:

class QuestionMembership < ActiveRecord::Base
belongs_to :form
belongs_to :question
acts_as_list :scope => :form
end

class Form < ActiveRecord::Base
has_many :question_memberships, :order => "position"
has_many :questions, :through => :question_memberships
end

class Question < ActiveRecord::Base
has_many :question_memberships, :order => "position"
has_many :forms, :through => :question_memberships
acts_as_list :scope => :form
end

关于ruby-on-rails - 将 acts_as_list 与 has_many 一起使用 :through in rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/664807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com