2013-04-01 2 views
1

У меня есть эта модель для компанииselect_tag рельсы, показывают только конкретный список

class Company < ActiveRecord::Base 
    attr_accessible :description, :name, :type 
    belongs_to :type, :class_name => "CompanyType", :foreign_key => :company_type_id 
end 

И эта модель company_type

class CompanyType < ActiveRecord::Base 
    attr_accessible :name 
end 

затем в другом файле _form Я хочу создать отборное, который только показать список компании, где тип компании - «Финансовый». Если тип этой компании - «Нефть», то не показывать ее в выпадающем списке.

Как его вставить в этот код select_tag и изменить модель?

<%= select_tag :company, 
    options_from_collection_for_select(Company.order(:name), "id", "name"), 
    :include_blank => true%> 

ответ

3
<%= select_tag :company, 
options_from_collection_for_select(Company.where(:type => "Financial").order(:name), "id", "name"), 
:include_blank => true%> 

В основном только добавить .гд (Тип => «Финансовый»), вы можете добавить простое заявление .гда там. Хотя вы, возможно, захотите удалить

Company.where(:type => "Financial").order(:name) 

к контроллеру и сохранить его в переменной экземпляры, как этот

@companies = Company.where(:type => "Financial").order(:name) 

и имеют вид логики выглядеть следующим образом.

<%= select_tag :company, 
options_from_collection_for_select(@companies, "id", "name"), 
:include_blank => true%> 

EDIT к обновленному ВОПРОСА

Модель

class CompanyType < ActiveRecord::Base 
    has_many :companies 
    attr_accessible :name 
end 

Контроллер

@companies = CompanyType.where(:name => "Financial").companies.order(:name) 

и имеют вид логики выглядеть следующим образом.

<%= select_tag :company, 
options_from_collection_for_select(@companies, "id", "name"), 
:include_blank => true%> 
+0

Я обновил свой вопрос, вы не можете помочь? – muhihsan

+0

Обновлено для вашего нового вопроса. – rovermicrover

+0

np рад помочь – rovermicrover

Смежные вопросы