0

在我的 Rails 应用程序中,我有用户、学校和课程模型。我已经建立了一个多态关联,以便用户和学校有许多课程可以托管,并且课程属于_to 可托管。我的路线如下所示:

  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>

现在我只有学校视图配置为简单地列出课程标题和描述。我想做的是在学校的显示页面上列出学校的所有课程,而不是只显示课程标题的文本,我希望课程标题是一个链接,重定向到课程页面。有什么建议么?

谢谢。

4

2 回答 2

0

您需要定义一个路由config/routes.rb才能以这种方式链接到嵌套资源。如果您还没有路线,这将为您提供路线:

resources :schools do
  resources :courses
end

您可以运行rake routes以获取所有路线的列表。在我的示例中,您将获得一个school_courses列表。然后你可以link_to course.title, school_courses_path(@hostable, course)像 Wawa Loo 指出的那样做一个。

于 2012-07-02T18:48:48.930 回答
0
<%= link_to course.title, school_course_path(@hostable, course) %>
于 2012-07-02T18:22:53.483 回答