Rails:显示关联模型的属性

时间:2015-10-09 07:02:18

标签: ruby-on-rails associations

我正在尝试使用Rails 4制作应用程序。

我有个人资料显示页面,其中应包含个人资料所属的大学名称。

我的个人资料中有这个链接#show:

<%= link_to @profile.university.name do %>
            <span class="profiletitle"> <%= @profile.university.name %></span>
<% end %>

我有个人资料模型和大学模型。协会是:

profile: belongs_to :university

university: has_many :profiles

在我的大学表中,我有一个名为:name。

的属性

当我尝试这个时,我收到一个错误说:

ActiveRecord::RecordNotFound at /profiles/University%20of%20Melbourne
Couldn't find Profile with 'id'=University of Melbourne

它指的是我的配置文件控制器,它具有(在错误参考点所在的行):

 def set_profile
      @profile = Profile.find(params[:id])
 end

我不明白为什么这个参考是相关的或如何从个人资料展示中引用大学名称。我想让ti工作,所以你点击链接,它会带你到uni概览节目页面。

如何从关联模型中引用属性?

我已经问了几个其他问题,试图解决这个错误。最近的一个在这里。给出了一个广泛的答案,但我不希望像建议所规定的那样建立关联,所以我迷失了如何跟随答案的内容。

http://stackoverflow.com/questions/32916133/rails-how-to-show-attribute-of-an-associated-model

谢谢

当我接受Prashant的建议并尝试:

<%= link_to universities_path(@profile.university) do %>
   <span class="profiletitle"> <%= @profile.university.name %></span>
 <% end %>

我收到此错误:

ActionController::UnknownFormat

它在我的大学控制器中引用了这个动作:

def index
    @universities = University.all
    respond_with(@university)
  end

我的个人资料路线是:

resources :profiles do
    resources :account_histories
  end

1 个答案:

答案 0 :(得分:0)

yourUse是这样的:

<强>更新

 <%= link_to university_path(@profile.university) do %>
   <span class="profiletitle"> <%= @profile.university.name %></span>
 <% end %>

您的routes.rb应包含此

resources :universities do
  resources :profiles
  # other stuff
  end
end