【发布时间】:2015-03-01 03:10:22
【问题描述】:
我在 Rails 中使用嵌套模型表单,带有一个问答应用程序,类似于 Ryan Bates 的应用程序,这里:http://railscasts.com/episodes/196-nested-model-form-revised。
现在,我想让问题可排序,然后保存它们的位置,以便在 show.html.erb 中显示它们。
所以我的观点是这样的:
_form.html.erb:
<%= f.fields_for :questions do |builder| %>
<ul class='sortable'>
<%= render 'question_fields', f: builder %>
</ul>
<% end %>
<%= link_to_add_fields "Add Question", f, :questions %>
_question_fields.html.erb:
<li>
<%= f.label :content, "Question" %><br />
<%= f.text_area :content %><br />
<%= f.check_box :_destroy %>
<%= f.label :_destroy, "Remove Question" %>
</li>
我的 jquery 只是一个简单的:
$(".sortable").sortable();
助手是:
def link_to_add_fields(name, f, association)
new_object = f.object.send(association).klass.new
id = new_object.object_id
fields = f.fields_for(association, new_object, child_index: id) do |builder|
render(association.to_s.singularize + "_fields", f: builder)
end
link_to(name, '#', class: "add_fields", data: {id: id, fields: fields.gsub("\n", "")})
end
我发现了关于通过 Ajax 保存的类似 SO 问题(使用 Sortable 的 serialize()),但我真的只是在寻找一种无需使用 AJAX 即可保存的解决方案。
【问题讨论】:
-
正在渲染的 html 是什么
-
@Rooster,我添加了问题中出现的错误。是这个意思吗?
-
@the_ 你能粘贴浏览器返回的html代码吗? (分页器html)
-
@MrMins,没有分页器吗?抱歉,我不清楚,但是在每个网页上,都有很多属于一本书的“页面”。但一切都在一个网页上。
-
您能否展示一下
answer_fields模板的外观以及您的link_to_add_fields助手的作用?
标签: javascript jquery ruby-on-rails ruby jquery-ui