1

我的应用程序中的每个用户都有一个自定义的可共享 URL。此 URL 允许用户共享站点并将其归功于转化。
我的问题是,当我尝试捕捉这条路线时,我遇到了一个问题,即我的所有网址——即使是非共享的网址都被视为用户共享网址。

我知道发生这种情况是因为我如何设置 routes.rb

路线.rb

match '/:in_url' => 'share_links#go'

共享链接控制器.rb

def go
  if @link = Spree::ShareLink.find_by_in_url(params[:in_url])
    session[:converter] = @link.user_id
    redirect_to root_path, :status => @link.http_status
  end
end

我将如何设置它,因此控制器仅处理可共享的 url - 或者如果@link 为 nil,我将继续执行常规请求?

4

1 回答 1

1

尝试将此路线放在路线文件的末尾,看看问题是否仍然存在。

不确定您的应用程序是如何设置的,但是当用户输入错误时会发生什么?也许将其更改为:

def go
  if @link = Spree::ShareLink.find_by_in_url(params[:in_url])
    session[:converter] = @link.user_id
    redirect_to root_path, :status => @link.http_status
  else
    redirect_to root_path # or 404 page
  end
end
于 2013-02-13T01:22:02.387 回答