У меня возникли трудности с получением моей «формы обновления» для отображения вложенных атрибутов. В частности, изображения (например, «выбор») для отображения. Все остальные поля данных отображаются. Только не это моя форма:Rails - Показать вложенные атрибуты в форме «Обновить»
<%= bootstrap_form_for @template, :url => {:action => 'update', :id => @template.id } do |f| %>
<fieldset>
<legend>Update Your Template</legend>
<%= f.text_field :prompt, :class => :span6, :placeholder => "Which one is running?", :autocomplete => :off %>
<%= f.select 'group_id', options_from_collection_for_select(@groups, 'id', 'name', selected: @template.group.id) %>
<div class="row-fluid">
<ul class="thumbnails">
<%= f.fields_for :template_assignments do |builder| %>
<li class="span3" id="">
<div class="thumbnail">
<%= builder.text_field :choice_id %>
<%= image_tag @template.template_assignments.builder.choice.image %>
</div>
</li>
<% end %>
</ul>
</div>
<% end %>
Основная линия у меня возникли проблемы с является:
<%= image_tag @template.template_assignments.builder.choice.image %>
Я не могу получить его, чтобы перебирать каждый из 4-х вложенных атрибутов изображения. Он выполняет итерацию с помощью 4 вложенных атрибутов, относящихся к: choice_id, который отображается правильно в текстовом поле.
Если я изменить его на:
<%= image_tag @template.template_assignments.first.choice.image %>
, он отображает первое изображение не проблема.
Однако мне нужно, чтобы он повторялся и отображал «первое», «второе», «третье» и «четвертое» изображения.
Любая помощь в том, как отображать эти изображения, точно так же, как отображаются изображения image_id?
EDIT: Вот мои модели
# app/models/template.rb
class Template < ActiveRecord::Base
belongs_to :group
has_many :template_assignments, dependent: :destroy
has_many :choices, :through => :template_assignments
accepts_nested_attributes_for :template_assignments, allow_destroy: true
end
# app/models/template_assignment.rb
class TemplateAssignment < ActiveRecord::Base
belongs_to :template
belongs_to :choice
end
# app/models/choice.rb
class Choice < ActiveRecord::Base
has_many :template_assignments
has_many :templates, :through => :template_assignments
end
Спасибо Джереми. Но это не работает. Я не знаю, связано ли это с тем, что «choice.image» находится в собственной таблице. Я обновил OP, чтобы показать свои модели. – Dodinas
Чтобы быть более конкретным, когда я использую ваше предложение, я получаю следующую ошибку: '" NoMethodError: undefined method 'choice '" ' – Dodinas
Возможно, попробуйте' <% = image_tag builder.object.choice.image%> '? –