使用多个参数配置rails3路由

发布于 2024-12-03 09:49:39 字数 522 浏览 1 评论 0原文

我拥有的

match "/home/markread/:id" => "books#markread"

转到

def markread
  #mark params[:id] as read
end

我想要的

如果我想传递另一个参数,使网址看起来像这样,该怎么办 /home/markread/1/didread=read/home/markread/1/didread=unread

所以我的方法将更改为

def marked
  #mark params[:id] as params[:didread]
end

问题

什么我的 routes.rb 应该是什么样子才能实现这一目标?

What I have

match "/home/markread/:id" => "books#markread"

goes to

def markread
  #mark params[:id] as read
end

What I want

What If I want to pass another parameter so that urls looks like
/home/markread/1/didread=read or /home/markread/1/didread=unread

so my method will change to

def marked
  #mark params[:id] as params[:didread]
end

Question

what should my routes.rb look like for me to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

清风无影 2024-12-10 09:49:39

只更改为怎么样

match "home/markread/:id/used=:used" => "books#markread"

How about just changing to

match "home/markread/:id/used=:used" => "books#markread"
赤濁 2024-12-10 09:49:39

使用“as”选项为路由命名,并传递任意数量的可选参数。

例如:

match "/home/markread/:id" => "books#markread", :as => 'markread'

这将为您提供诸如 markread_pathmarkread_url 之类的帮助器。您可以传递像 markread_path(:id => 1, :other => 'value' ...) 这样的参数

您需要在控制器中检查该操作是否有特定参数通过与否。 Rails 文档

Give the route a name using the 'as' option and pass the optional parameters as many you want.

For example:

match "/home/markread/:id" => "books#markread", :as => 'markread'

This will give you helpers like, markread_path and markread_url. You can pass the parameters like markread_path(:id => 1, :other => 'value' ...)

You need to do the checks in the controller for that action whether a particular parameter is passed or not. Rails Doc.

神经大条 2024-12-10 09:49:39

在 Rails 4 中,您将拥有:

    resources :home, only: :none do
      get 'markread/:another', action: :markread, on: :member
    end

GET /home/:id/markread/:another(.:format) /home#markread

In rails 4 you will have:

    resources :home, only: :none do
      get 'markread/:another', action: :markread, on: :member
    end

GET /home/:id/markread/:another(.:format) /home#markread

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文