У меня есть две модели: самооценка и оценка, где самооценка has_many :scores
и accepts_nested_attributes_for :scores
. В новой форме самооценки может быть до 60 вложенных баллов. То, что я хотел бы сделать, это реализовать разбиение на страницы на те вложенные поля атрибутов внутри формы.Will_paginate внутри формы POST с вложенными атрибутами
Я попытался реализовать его без везения.
контроллер
def new
@self_assessment = SelfAssessment.new
@scores = @self_assessment.scores.paginate(:page => params[:page], :per_page => 10, :total_entries=> @self_assessment.scores.size)
end
вид
<%= form_for @self_assessment do |f| %>
<h2>At home...</h2>
<% Category.where(at_home: true).each do |category| %>
<h3><%= category.title %></h3>
<% Act.where(category_id: category.id).each do |act| %>
<%= f.fields_for :scores, Score.new do |builder| %>
<%= builder.hidden_field :self_assessment_id, value: @self_assessment.id %>
<%= builder.select(:rank, scales_for_select(act), prompt: "-Select-") %>
<%= act.name %><br>
<% end %>
<% end %>
<% end %>
<h2>At work...</h2>
<% Category.where(at_work: true).each do |category| %>
<h3><%= category.title %></h3>
<% Act.where(category_id: category.id).each do |act| %>
<%= f.fields_for :scores, Score.new do |builder| %>
<%= builder.hidden_field :self_assessment_id, value: @self_assessment.id %>
<%= builder.select(:rank, scales_for_select(act), prompt: "-Select-") %>
<%= act.name %><br>
<% end %>
<% end %>
<% end %>
<%= will_paginate @scores, :params => { :method => :post } %>
<%= f.submit "Submit" %>
привет, как вы достигли этого, пожалуйста, напишите свой код – santosh