Rails基于db字段从一个模型链接到另一个模型?

时间:2010-05-21 08:02:18

标签: ruby-on-rails models hyperlink

我有一个公司模型和一个具有以下关系的人模型:

class Company < ActiveRecord::Base
  has_many :kases
  has_many :people
  def to_s; companyname; end
end

class Person < ActiveRecord::Base
  has_many :kases # foreign key in join table
  belongs_to :company
end

在此人的创建操作中,我有一个包含公司列表的选择框,它将company_id分配给该人的记录:

<%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]} %>

在此人的节目视图中,我可以按如下方式列出公司名称:

<%=h @person.company.companyname %>

我想要解决的是,如何将其作为公司记录的链接?

我试过了:

<%= link_to @person.company.companyname %>

但只是在href标签内输出公司名称,但链接到当前页面。

谢谢,

丹尼

2 个答案:

答案 0 :(得分:2)

您需要将第二个参数传递到您想要的路径

<%= link_to @person.company.companyname, @person.company %>

或完整版:

<%= link_to @person.company.companyname, company_url(@person.company) %>

答案 1 :(得分:1)

问题是,link_to无法猜测您希望它导致的位置,如果您只给出链接的文本:)

要使链接指向公司页面,您需要添加路径:

<%= link_to @person.company.companyname, company_path(@person.company) %>

这假设您的公司有适当的休息路线

map.resources :companies

,您要前往的页面为companies/show.html.erb