将我的联系表单设置为从公司ID自动填写

时间:2012-03-21 10:51:07

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

在我的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>

1 个答案:

答案 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)