Swa*_*y g 2 ruby routes ruby-on-rails rails-routing
我的routes.rb中有以下内容
map.resources :novels do |novel|
novel.resources :chapters
end
Run Code Online (Sandbox Code Playgroud)
通过上面定义的路由,我可以使用访问章节xxxxx.com/novels/:id/chapters/:id.但这不是我想要的,章节模型有另一个叫做数字的字段(对应章节编号).我想通过URL来访问每一章
xxxx.com/novels/:novel_id/chapters/:chapter_number.如何在不明确定义命名路由的情况下完成此操作?
现在我通过使用以下命名路径定义ABOVE map.resources:novels来做到这一点
map.chapter_no 'novels/:novel_id/chapters/:chapter_no', :controller => 'chapters', :action => 'show'
Run Code Online (Sandbox Code Playgroud)
谢谢.
:id可以是你想要的几乎任何东西.因此,保持路由配置不受影响并更改您的操作
class ChaptersControllers
def show
@chapter = Chapter.find(params[:id])
end
end
Run Code Online (Sandbox Code Playgroud)
to(假设您要搜索的字段被调用:chapter_no)
class ChaptersControllers
def show
@chapter = Chapter.find_by_chapter_no!(params[:id])
end
end
Run Code Online (Sandbox Code Playgroud)
另请注意:
find_by_chapter_no!而不是find_by_chapter_no)模拟默认find行为| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |