【问题标题】:Rails url options based on model attribute基于模型属性的 Rails url 选项
【发布时间】:2013-09-12 06:08:11
【问题描述】:

我的路线定义如下

scope ':cityname' do
  resources comments
end

注意cityname = comment.user.cityname所以像comment_path(@comment)这样的url助手可以生成像

这样的链接
/newyork/comments/1
/boston/comments/2
/miami/comments/3

如何根据model属性设置这个:cityname url选项?

我在这里找到了一个相关的问题:default_url_options and rails 3

谢谢!

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

    你可以试试这样的

    class ApplicationController < ActionController::Base
    
      def url_options
        { :cityname => @comment.user.cityname }.merge(super)
      end
    
    end
    
    class YourController < ...
    
    def calledaction
      @comment = Comment.find(1)
    end
    end
    

    【讨论】:

    • 谢谢,但它是如何在包含 100 个评论链接以及所有不同城市名称的索引页面上工作的?也就是说,有没有办法绕过 ApplicationController?
    • 它必须在控制器中被覆盖,所以你可以把这个函数放在你的特定控制器中,以防你不希望它无处不在。
    • 仍然,这在索引页面上是如何工作的?有 100 个评论链接,所有 DIFFERENT 城市名称?在这里,您没有一个 @comment,而是一个 cmets 数组,控制器将如何提供帮助?
    • 在这种情况下,您可以尝试像这样传递城市名 some_url(:cityname => 'cityname')
    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2014-01-07
    • 2016-07-21
    • 2018-11-01
    相关资源
    最近更新 更多