在我的rails应用程序中,我有用户,学校和课程模型。我已经建立了一个多态关联,以便用户和学校有许多可托管的课程,并且课程属于hostable。我的路线看起来像这样:
resources :users do
resources :courses
end
resources :schools do
resources :courses
end
我校控制器中的节目如下:
def show
@school = School.find(params[:id])
@user = current_user.schools.find_by_user_id(params[:user_id])
@title = @school.school_name
@hostable = @school
@courses = @hostable.courses
@course = Course.new
end
在学校和用户显示页面中呈现的部分课程如下所示:
<div id="courses">
<% @courses.each do |course| %>
<div class="course">
<%= simple_format course.title %>
<%= simple_format course.description %>
</div>
<% end %>
</div>
现在我只将学校视图配置为简单列出课程名称和说明。我想要做的是在学校的展览页面上列出所有学校的课程,而不是只显示课程标题的文本,我希望课程标题是一个重新指向课程页面的链接。有什么建议吗?
感谢。
答案 0 :(得分:0)
<%= link_to course.title, school_course_path(@hostable, course) %>
答案 1 :(得分:0)
您需要在config/routes.rb
中定义一条路线才能以这种方式链接到嵌套资源。如果您还没有路线,这将为您提供路线:
resources :schools do
resources :courses
end
您可以运行rake routes
来获取所有路线的列表。在我的示例中,您将获得school_courses
列表。然后你可以像Wawa Loo指出的那样做link_to course.title, school_courses_path(@hostable, course)
。