Rails 4 link_to没有生成正确的资源路径

时间:2013-11-13 22:18:09

标签: ruby-on-rails ruby-on-rails-4

我有一个我设置使用的资源:slug而不是:url中的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生成正确的路径?

1 个答案:

答案 0 :(得分: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