我有一个带有f.select选项的表单。我想在从选项中选择公司名称时添加公司ID和公司名称。是否可以在f.select代码行中添加多个属性?这就是我的代码的样子:
// java
float acceleration = 120f; // deg/s²
float inertia = body.getInertia();
body.applyTorque(inertia * (float)Math.toRadians(acceleration), true);
我还希望将companyName分配给my:companyName属性,但id是唯一正在保存的内容。
感谢。
答案 0 :(得分:1)
我认为您可以使用关联。你应该有2个型号如下。
class Company < ApplicationRecord
has_many :clients
end
class Client < ApplicationRecord
belongs_to :company
end
您应该在视图中使用变量来使用此
呈现所有客户端列表<%= f.select :client_id, @clients.collect { |client| [ client.name, client.id] } %>
控制器:
@clients = Client.all
在提交时,client_id
将传递给控制器。然后,您可以找到与客户端和其他逻辑关联的公司。
client = Client.find(params[:client_id])
company = client.company
# etc ..
答案 1 :(得分:1)
在表单提交的控制器操作中,您可以在保存或更新记录之前编写。
params[:your_object][:companyName]=Client.find_by(id: params[:your_object][:client_id]).companyName
请记住向您的强力参数添加params[:your_object][:companyName]
。 e.g。
params.require(:your_object).permit(:client_id, ... , :companyName)
在此之前,请确保您的client_id
在同一个对象中并允许并将其应用于companyName
属性
希望这有助于