在我的Contact#new form上我有一个下拉列表,它获取所有公司名称并对它们进行排序a-z, 当我在我的公司#show page并且我点击新的联系人时,不知何故我想让rails自动填写联系人#new下拉表格与我来自的公司,有没有办法做到这一点?
我的联系人belongs_to :company
我的公司has_many :contacts, :dependent => :destroy
<div class="field">
<%= f.label :company_id %><br />
<%= f.select(:company_id, Company.all.collect {|company| [company.name, company.id]}.sort{|a, b| a[0] <=> b[0]}, :prompt => "Select a Company") %>
</div>
答案 0 :(得分:3)
您需要初始化填充了company_id
的新对象,如下所示
在控制器中:
def new
@contact = Contact.new(:company_id => params[:company_id])
end
然后在视图中:
form_for @contact do |f|
...
并在link_to
中显示您需要拥有此路径的表单:
link_to "Add new contact", new_contact_path(:company_id => @company.id)