0

我有一个资源,我已设置为在 url 中使用 :slug 而不是 :id 。

我的rake routes样子

     Prefix Verb URI Pattern              Controller#Action
       root GET /                        home#index
       home GET /                        home#index
course_type GET /courses/:slug(.:format) course_type#show

但是,当我这样做时,在我的模板(haml)中

= link_to course_type.name, course_type

它链接到 /courses/1course_typeid:1slug:"type_a")。它不应该指向/courses/type_a吗?

我也尝试过使用show_course_type_path[:show, course_type]但他们都提出了undefined method: show_course_type_path

如何让 rails 生成正确的路径?

4

1 回答 1

1

假设您的资源是 CourseType 并且您有一个 @course_type 实例变量:

link_to @course_type.name, course_type_path(@course_type.name)

这应该是这样的:

<a href="/courses/course-name">course-name</a>

为了使用@course_type 作为参数,在 course.rb 中:

def to_param
  name
end
于 2013-11-13T22:36:20.960 回答