Использование флажков с параметрами из таблицы ссылок «многие ко многим» - PullRequest
0 голосов
/ 08 октября 2010

У меня есть следующие модели

class Outbreak < ActiveRecord::Base
    has_many :risks
    has_many :factors, :through => :risks
end

class Risk < ActiveRecord::Base
    belongs_to :outbreak
    belongs_to :factor
end

class Factor < ActiveRecord::Base
    has_many :risks
    has_many :outbreaks, :through => :risks
end

Risk table
id : integer
outbreak_id : integer
factor_id : integer
details : text

В представлении / вспышке / редактировании

   <div id="factor_div">
    <% for factor in Factor.find(:all, :conditions => {:outbreak_type => @outbreak.outbreak_type}) %>
        <div>
        <%= check_box_tag "outbreak[factor_ids][]", factor.id , @outbreak.factors.include?(factor) %>
        <%= factor.name %>
        <%= text_field_tag "risk[details][]", @outbreak.risks.each{ |risk| if risk.factor_id == factor.id; risk} %>
        </div>

    <% end %>
   </div>

Я пытаюсь отредактировать атрибут сведений о модели риска (и заполнить правильное поле text_ измассив @ outbreak.risks).Можно ли сделать это, используя подход итерации по факторам (которые в основном состоят из статических переменных - которые иногда изменяются конечными пользователями), а затем проверяя, есть ли у каждого outbreak.risk этот фактор_ид или япросто идет об этом неправильно?

(не могу подумать - сегодня пятница, солнечно… и там внизу пивной сад ^^).

1 Ответ

0 голосов
/ 08 октября 2010

Сначала исправьте связь и обновите результаты.

class Factor < ActiveRecord::Base
  has_many :risks
  has_many :outbreaks, :through => :risks
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...