如果存在,我需要将params sort
添加到我的所有链接中。
我想到的解决方案:
使用link_to ..不方便,我觉得很难看。
link_to 'Something', tag_url(tags, params.except(:controller, :action))
创建自定义链接助手
Owerwrite link_to helper(尝试没有成功)
什么是最佳做法?
更新
def link_to_with_params(*args, &block)
if block_given?
options = args.first || {}
html_options = args.second
link_to(capture(&block), options, html_options)
else
name = args[0]
options = args[1] || {}
html_options = args[2]
html_options = convert_options_to_data_attributes(options, html_options)
url = url_for(options) # Add params.except(:controller, :action)
href = html_options['href']
tag_options = tag_options(html_options)
href_attr = "href=\"#{ERB::Util.html_escape(url))}\"" unless href
"<a #{href_attr}#{tag_options}>#{ERB::Util.html_escape(name || url)}</a>".html_safe
end
end
如何将params.except(:controller, :action)
传递给上方助手的网址?
答案 0 :(得分:1)
尝试以下
def link_to_with_params(params, name, options = {}, html_options = {})
options.merge!(params.except(:controller, :action)) if params && params.respond_to?(:merge!)
link_to(name, options, html_options)
end