ruby-on-rails - 如何绕过 default_url_options?

标签 ruby-on-rails ruby-on-rails-3 params

在我上一个 Rails 项目中,我不得不覆盖 default_url_optionsapplication_controller.rb始终通过每个请求传递参数,如下所示:

def default_url_options 
  { :my_default_param => my_param_value }
end  

现在每个 url helper 都会在每个生成的 url 的末尾附加一个 my_default_param。
例如 user_url(@current_user)生成一个网址,如:
http://www.example.com/users/1?&my_default_param=my_param_value 

但有时我需要在没有 my_default_param 的情况下生成 url .是否有一些选项我可以传递给 url 助手,以便 user_url(@current_user, some_option: some_option_value ) 只会返回:
http://www.example.com/users/1?&my_default_param=my_param_value

?

PN:我已经尝试过 :overwrite_params=> { }但它不起作用,可能是因为它在 default_url_options 之前进行了评估。

如果没有,是否有另一种方法可以在不附加 my_default_param 的情况下获取@current_user url?

谢谢你。

最佳答案

default_url_options has one param options您可以随意使用:

def default_url_options( options = {} )

  use_defaults = options.delete( :use_defaults )

  if use_defaults
    { :my_default_param => 'my_param_value' }
  else
    {}
  end

end

或者你可以颠倒逻辑:
def default_url_options( options = {} )

  ignore_defaults = options.delete( :ignore_defaults )

  if ignore_defaults
    {}
  else
    { :my_default_param => 'my_param_value' }
  end

end

关于ruby-on-rails - 如何绕过 default_url_options?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467339/

相关文章:

ruby-on-rails - 工头不会杀死进程

css - 如何创建评论 View ? Facebook 点赞评论实现(ruby on rails)

ruby-on-rails - simple_form 'form-inline' 不工作

ruby-on-rails - Searchkick `all` 用于带有 OR 的多个数组

ruby-on-rails - 如何在一个页面上使用多个 map ?

javascript - Rails 3 转义 html 标签在浏览器中作为 JSON 时未转义

json - Grails 2.4.3,升级参数,要求

ruby-on-rails - 带参数的 Rails redirect_to

ruby-on-rails - 使用 ActiveRecord 3/Arel 查找单个记录的最佳方法?