Rails ссылку от одной модели к другой на основе поля БД? - PullRequest
0 голосов
/ 21 мая 2010

У меня есть модель компании и модель человека со следующими отношениями:

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

В действии создания для этого человека у меня есть поле выбора со списком компаний, в котором для идентификатора компании назначается идентификатор компании:

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

В представлении просмотра для человека я могу указать название компании следующим образом:

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

Что я пытаюсь выяснить, как мне сделать ссылку на запись компании?

Я пытался:

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

но это просто выводит название компании внутри тега href, но ссылается на текущую страницу.

Спасибо

Danny

Ответы [ 2 ]

2 голосов
/ 21 мая 2010

Вам нужно передать во втором аргументе путь, по которому вы хотите пойти

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

или с полной версией:

<%= link_to @person.company.companyname, company_url(@person.company) %>
1 голос
/ 21 мая 2010

Дело в том, что link_to не может угадать, к чему вы хотите привести, если вы дадите ему только текст ссылки :)

Чтобы получить ссылку на страницу компании, необходимо добавить путь:

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

Это предполагает, что у вас есть правильные маршруты отдыха для вашей компании

map.resources :companies

и страница, на которую вы направляетесь, companies/show.html.erb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...