【问题标题】:The Rails way to change URL based on variable? Routing and perhaps namespace related基于变量更改 URL 的 Rails 方式?路由和命名空间相关
【发布时间】:2009-10-14 14:35:57
【问题描述】:

我有一个带有nsfw 标志的images 表。

nsfwsfw 添加到URL 的最佳方式是什么?

例如,

如果我有一个 id=1 且 nsfw 标志为 true 的图像,我希望 URL 为 /images/nsfw/1

如果我有一个 id=2 且 nsfw 标志为 false 的图像,我希望 URL 为 /images/sfw/2

【问题讨论】:

    标签: ruby-on-rails routing url-routing


    【解决方案1】:

    命名路线会做你想做的事。

    map.sfw '/images/sfw/:id', :action => 'show' , :controller => 'images', :params => {:nsfw => false}
    map.nsfw '/images/nsfw/:id', :action => 'show' , :controller => 'images', :params => {:nsfw => true}
    

    这将为link_to 和正确路由提供方便的方法。相应地在 params 哈希中设置 :nsfw 值。

    【讨论】:

      【解决方案2】:

      这可以通过路由来完成:

      map.connect ':controller/images/:nsfw/:id', :action => 'show', :nsfw => /n?sfw/
      

      然后您可以检查 nsfw 值(将是“nsfw”或“sfw”),方法与获取 :id 相同。

      【讨论】:

      • 是否有一个参数可以传递给map.resources :images,这样当我 它会创建正确的 n?sfw 链接?
      猜你喜欢
      • 2013-11-28
      • 2015-07-02
      • 1970-01-01
      • 2011-02-23
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多