Ruby on Rails-将参数附加到URL的末尾

时间:2018-08-31 08:47:46

标签: ruby-on-rails url

我想将param / string utm_campaign添加到URL的末尾(如果存在)。我当时正在考虑一种检查URL的辅助方法,如果utm_campaig n存在,它将自动将其放在右边。

  • test.com/home/?utm_source=test
  • test.com/home/?utm_source=test&utm_campaign=testit

我还需要在每次链接更改操作中允许它。

例如:

我在test.com/home/?utm_source&utm_campaign=testit上并有一个联系表,完成后,将我发送到test.com/contact-不允许使用参数。

我将如何实现?

我现在有这样的东西:

def url_include_campaign?
    url = request.path_info
    if url.include?('utm_campaign')

    end
  end

1 个答案:

答案 0 :(得分:0)

首先-要检查utm_campaign是否可用,可以使用request.query_parameters

要将参数添加到URL,我将这样做:

def url_with_campaign
  if request.query_parameters.fetch('utm_campaign', false)
    # utm_campaign is set, do whatever you need
  else
    new_query_params = request.query_parameters
    new_query_params['utm_campaign'] = '##SOMETHING##'
    redirect_to "#{request.base_url}#{request.path}?#{new_query_params.to_query}"
  end
end