Ruby on rails 3 使用多个参数配置rails3路线
我拥有的Ruby on rails 3 使用多个参数配置rails3路线,ruby-on-rails-3,routes,url-routing,Ruby On Rails 3,Routes,Url Routing,我拥有的 match "/home/markread/:id" => "books#markread" 去 def markread #mark params[:id] as read end 我想要什么 如果我想传递另一个参数,使URL看起来像 /home/markread/1/didread=read或/home/markread/1/didread=unread 因此,我的方法将更改为 def marked #mark params[:id] as params[:did
match "/home/markread/:id" => "books#markread"
去
def markread
#mark params[:id] as read
end
我想要什么
如果我想传递另一个参数,使URL看起来像
/home/markread/1/didread=read
或/home/markread/1/didread=unread
因此,我的方法将更改为
def marked
#mark params[:id] as params[:didread]
end
问题
要实现这一点,我的
routes.rb应该是什么样子?换成
match "home/markread/:id/used=:used" => "books#markread"
使用“as”选项为路由命名,并根据需要传递可选参数
例如:
match "/home/markread/:id" => "books#markread", :as => 'markread'
这将为您提供帮助程序,如,markread\u path
和markread\u url
。您可以传递参数,如markread\u path(:id=>1,:other=>value'…)
无论是否传递了特定参数,都需要在控制器中检查该操作 在rails 4中,您将拥有:
resources :home, only: :none do
get 'markread/:another', action: :markread, on: :member
end
GET/home/:id/markread/:另一个(:format)/home#markread
来自您提供的示例…我仍然能够传递多个参数吗?是。您可以传入任意数量的参数。决定在控制器中对它们执行什么操作。