我正在尝试使用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
答案 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