我在Rails应用程序中有一个选择列表下拉列表,用于创建新记录。
<li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => (@kase.surveyorperson_id rescue "")} %></span></li>
这样,用户可以从Surveyor的名单中选择他们想要与他们正在创建的案例相关联的名称。
我想做的是在括号中名字旁边列出验船师的公司名称。
目前代码如下:
<li>Appointed Company<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => (@kase.appointedsurveyor_id rescue "")} %></span></li>
<li>Appointed Surveyor<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => (@kase.surveyorperson_id rescue "")} %></span></li>
是否可以让公司让测量员在他们的名字之后输出?
协会如下:
class Company < ActiveRecord::Base
has_many :kases
has_many :people
class Person < ActiveRecord::Base
has_many :kases # foreign key in join table
belongs_to :company
我还将公司记录的输出更改为他们的姓名而不是他们的ID号。
def to_s; companyname; end
提前致谢!
谢谢,
丹尼
答案 0 :(得分:1)
您可以向Person模型添加一个方法,该方法返回一个字符串,其中包含人员姓名和他/她正在为之工作的公司:
def name_and_company
return "#{name} [#{company.name}]"
end
如果您不想在模型中使用此功能(因为这是与视图相关的代码),您可以而不是仅仅调用
x.personname
在Person.all.collect
调用中,您可以使用类似
"#{name} [#{company.name}]"