我有三个模型,我想互相交流。
Kase,Person and and Company。
我(我认为)正确设置了关系:
class Kase < ActiveRecord::Base
#HAS ONE COMPANY
has_one :company
#HAS MANY PERSONS
has_many :persons
class Person < ActiveRecord::Base
belongs_to :company
class Company < ActiveRecord::Base
has_many :persons
def to_s; companyname; end
我已将select字段放在create new Kase视图上,并创建新的Person视图,如下所示:
<li>Company<span><%= f.select :company_id, Company.all %> </span></li>
以上所有内容都成功显示了一个下拉菜单,其中包含公司内的公司名称。
我要做的是在kase和person show.html.erb中显示公司记录的联系方式。
例如,如果我有一家名为“Acme,Inc。”的公司并创建一个名为“Random Case”的新Kase,并在创建新案例页面“Acme,Inc。”中选择从公司下拉菜单。然后我想在“随机案例”show.html.erb上显示“Acme,Inc”和“Acme,Inc. Mobile”等。
我希望这对某人有意义!
谢谢,
丹尼
编辑:kases_controller
def show @kase = Kase.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @kase } format.pdf { render :layout => false } prawnto :prawn => { :background => "#{RAILS_ROOT}/public/images/jobsheet.png", :left_margin => 0, :right_margin => 0, :top_margin => 0, :bottom_margin => 0, :page_size => 'A4' } end end
答案 0 :(得分:3)
我认为根据您在问题中发布的内容,您的模型关联不完整:
class Kase < ActiveRecord::Base
has_one :company
has_many :people # Rails should handle the correct plural here
end
class Company < ActiveRecord::Base
has_many :people
belongs_to :kase
end
class Person < ActiveRecord::Base
belongs_to :company
belongs_to :kase
end
在正确设置关联后,您可以访问特定案例的公司属性:
kase.company.name
kase.company.mobile
- 或者某个人:
person.company.name
person.company.mobile
你甚至可以通过个人案件来到公司:
person.kase.company.name # etc...
答案 1 :(得分:0)
如果我理解正确,您的节目文件将包含以下内容以显示手机号码:
# in app/views/kases/show.html.erb
<h1><%=h kase.name %></h1>
<h2>Company Information</h2>
<ul>
<li>Company Name: <%=h kase.company.name %></li>
<li>Company Mobile: <%=h kase.company.mobile_phone %></li>
</ul>
试一试,看看是否只需要。