Итак, у меня есть следующее
class OptionOfSingleChoice < ApplicationRecord
has_many :option_choices, as: :choiceable
end
class OptionChoice < ApplicationRecord
belongs_to :choiceable, polymorphic: true, optional: true
end
В новом действии контроллера OptionOfSingleChoice я делаю следующее:
def new
@optionofsinglechoice = OptionOfSingleChoice.new()
setup_three_default_choices()
3.times {@optionofsinglechoice.option_choices.build}
end
и представление нового действия
<div class="form-group">
<%= test.fields_for :option_choices do |builder| %>
<%= render 'option_choices/form', :f => builder %>
<% end %>
</div>
И представление формы для option_choice выглядит следующим образом
<div class="form-group">
<%= f.text_field(:name, :class => 'form-control') %>
<%= f.text_field(:price, :class => 'form-control') %>
<%= f.file_field :choice_image, multiple: false, direct_upload: false,:class => 'form-control' %>
</div>
Моя проблема в том, что теперь я ожидаю, что форма для option_choice будет отображаться 3 раза, а фактически только 1 раз.Я не могу понять, почему, но я подозреваю, что это потому, что Choisable не создан.Когда я смотрю на объекты OptionChoice, они выглядят так:
<OptionChoice id: nil, name: nil, price: nil, choiceable_id: nil, choiceable_type: "OptionOfSingleChoice", created_at: nil, updated_at: nil>
Я предполагаю, что мне нужно каким-то образом создать: choiceable каким-то образом.Надеюсь, вы можете помочь мне