我有一个我设置使用的资源: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/1
(course_type
有id:1
和slug:"type_a"
)。它不应该指向/courses/type_a
吗?
我还尝试使用show_course_type_path
和[:show, course_type]
,但他们都提出undefined method: show_course_type_path
如何让rails生成正确的路径?
答案 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