Ruby on rails Rails f.同时选择saveid和Name

Ruby on rails Rails f.同时选择saveid和Name,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,attributes,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,Attributes,我有一个带有f.select选项的表单。当从选项中选择公司名称时,我想添加公司ID和公司名称。是否可以在f.select代码行中添加多个属性?这就是我的代码的外观: <div class="field"> <%= f.label 'Client' %> <%= f.select :client_id, Client.all.collect { |c| [ c.companyName, c.id ] } %> 我还想将companyName分配给my

我有一个带有f.select选项的表单。当从选项中选择公司名称时,我想添加公司ID和公司名称。是否可以在f.select代码行中添加多个属性?这就是我的代码的外观:

<div class="field">
 <%= f.label 'Client' %>
 <%= f.select :client_id, Client.all.collect { |c| [ c.companyName, c.id ] } %>

我还想将companyName分配给my:companyName属性,但id是目前唯一保存的内容


谢谢。

我想你可以用联想来做这件事。您应该有以下两种型号

class Company < ApplicationRecord
 has_many :clients
end

class Client < ApplicationRecord
 belongs_to :company
end
提交时,
客户端id
将传递给控制器。然后,您可以找到与客户机和其他逻辑关联的公司

client = Client.find(params[:client_id])
company = client.company
# etc ..

我想你可以用联想来做这件事。您应该有以下两种型号

class Company < ApplicationRecord
 has_many :clients
end

class Client < ApplicationRecord
 belongs_to :company
end
提交时,
客户端id
将传递给控制器。然后,您可以找到与客户机和其他逻辑关联的公司

client = Client.find(params[:client_id])
company = client.company
# etc ..

在表单提交的控制器操作中,您可以在保存或更新记录之前进行写入

params[:your_object][:companyName]=Client.find_by(id: params[:your_object][:client_id]).companyName
记住在强参数中添加
参数[:您的对象][:companyName]
。e、 g

params.require(:your_object).permit(:client_id, ... , :companyName)
在进行任何操作之前,请确保您的
客户机\u id
位于同一个对象中,并且是允许的,并将其应用于
公司名称
属性


希望这对您的表单提交的控制器操作有所帮助,您可以在保存或更新记录之前编写

params[:your_object][:companyName]=Client.find_by(id: params[:your_object][:client_id]).companyName
记住在强参数中添加
参数[:您的对象][:companyName]
。e、 g

params.require(:your_object).permit(:client_id, ... , :companyName)
在进行任何操作之前,请确保您的
客户机\u id
位于同一个对象中,并且是允许的,并将其应用于
公司名称
属性

希望这有帮助