我的应用中的每个用户都有自定义的可共享网址。此网址允许用户共享网站并将其归功于转化 我的问题是,当我试图抓住这条路线时,我遇到的问题是我的所有网址 - 甚至是非共享的网址都被视为用户共享网址。
我理解这种情况正在发生,因为我如何设置我的routes.rb
match '/:in_url' => 'share_links#go'
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,我会继续常规请求吗?
答案 0 :(得分: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