Ruby on rails Rails 3-新控制器动作路线
我有一个在线培训的应用程序,每个在线培训都有几个章节。我不想只为培训章节创建下一个控制器。我想在培训控制员方面有一个新的动作,可以称之为章节。然后我想要这样的URL: /培训/1/章/3 /控制员/id培训/行动/id章节 您能帮助我如何设置routes.rb以实现此行为吗?我试了很多东西,但还是坏了 提前谢谢你Ruby on rails Rails 3-新控制器动作路线,ruby-on-rails,ruby-on-rails-3,rails-routing,Ruby On Rails,Ruby On Rails 3,Rails Routing,我有一个在线培训的应用程序,每个在线培训都有几个章节。我不想只为培训章节创建下一个控制器。我想在培训控制员方面有一个新的动作,可以称之为章节。然后我想要这样的URL: /培训/1/章/3 /控制员/id培训/行动/id章节 您能帮助我如何设置routes.rb以实现此行为吗?我试了很多东西,但还是坏了 提前谢谢你 Petr您可以将路线定义为: resources :trainings do get 'chapter/:chapter_id', action: :chapter, as: :
Petr您可以将路线定义为:
resources :trainings do
get 'chapter/:chapter_id', action: :chapter, as: :training_chapter, constraints: { chapter_id: /\d+/ }
end
然后,在您的“控制器”rb中:
行get'chapter/:chapter\u id',action::chapter,as:training\u chapter,constraints:{chapter\u id://\d+/},定义了格式为training/:id/chapter/:chapter\u id的get路径,该路径在TrainingController中执行chapter操作
此路由的名称是由as::training\u chapter定义的training\u chapter,因此您可以使用命名的路由帮助程序,例如training\u chapter\u trainings\u path
最后一个选项constraints://\d+/限制了chapter\u id可以保存的值,根据这些值执行此路由。因此,对/trainings/1/chapter/1的get请求会执行chapter操作,而/trainings/1/chapter/a不会执行,因为chapter\u id的值a是非数字的。您可以将路由定义为:
resources :trainings do
get 'chapter/:chapter_id', action: :chapter, as: :training_chapter, constraints: { chapter_id: /\d+/ }
end
然后,在您的“控制器”rb中:
行get'chapter/:chapter\u id',action::chapter,as:training\u chapter,constraints:{chapter\u id://\d+/},定义了格式为training/:id/chapter/:chapter\u id的get路径,该路径在TrainingController中执行chapter操作
此路由的名称是由as::training\u chapter定义的training\u chapter,因此您可以使用命名的路由帮助程序,例如training\u chapter\u trainings\u path
最后一个选项constraints://\d+/限制了chapter\u id可以保存的值,根据这些值执行此路由。因此,对/trainings/1/chapter/1的get请求会执行chapter操作,而/trainings/1/chapter/a则不会执行,因为chapter\u id的值a是非数字的。我认为您需要的是:
match '/trainings/:training_id/chapter/:chapter_id' => 'trainings#chapter', :as => 'chapter_training'
app/controllers/trainings\u controller.rb
def chapter
end
我想这就是你想要的:
match '/trainings/:training_id/chapter/:chapter_id' => 'trainings#chapter', :as => 'chapter_training'
app/controllers/trainings\u controller.rb
def chapter
end