варианты во вложенной форме - PullRequest
0 голосов
/ 06 февраля 2011

Попытка создать вложенную форму, которая пока работает нормально, за исключением того, что мне нужно добавить несколько выпадающих меню для выбора пользователя, а также, возможно, сделать пару проверок, однако, похоже, что из формы ничего не выходит должным образоми продолжаю получать ошибки, что бы я ни пытался.

три модели.--configuration

  has_many :configoptions
  accepts_nested_attributes_for :configoptions

- configoption

  belongs_to :configuration
  has_many :items

и item

  belongs_to :configoption
  scope :sorted, order('items.position ASC')

Теперь, пока я создаю вложенную форму, проходя по циклуconfigoptions, но для каждого варианта возможно более одного элемента.Поэтому я хочу сделать раскрывающийся список для тех вариантов, где это имеет место.

На мой взгляд, у меня есть:

<p>
<th>Elements</th>
<th>Quantity</th>
</p>
<%= form_for @config, :url => {:action => 'show', :id => @config.id} do |f| %>
  <%= f.fields_for :configoptions do |fp| %>
    <p>
        <% if :items.count > 1 %>
        <%= fp.text_field :name %>  
        <% else %>
        <% fp.select(:items, :name)%>
        <% end %>
    <%= fp.text_field :quantity %>
    </p>
  <% end %>    
  <%= f.submit %>
<% end %>

Я получаю сообщение об ошибке, явно говорящее мне, что это может 'не считать: предметы.

Как вы думаете, я могу заставить эту работу?

Спасибо!

<% = form_for @config,: url => {: action => 'show',: id => @ config.id} do | f |%> <% = f.fields_for: configoptions do | fp |..submit%> <% end%>

1 Ответ

0 голосов
/ 07 февраля 2011

ОК, думаю, я понял это, по крайней мере, сейчас, похоже, я делаю то, что хочу.

Я изменил представление, чтобы передать экземпляр конфигурации в саму вложенную форму, чтобы можно было создавать раскрывающиеся списки.

  <% for configoption in @config.configoptions %>    
  <%= f.fields_for :configoptions, configoption do |fp| %>
    <p>
        <% if configoption.items.count > 1 %>
        <%= fp.select (:name, options_from_collection_for_select(configoption.items.sorted, 'name', 'name'))%>  
        <% else %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...