【发布时间】:2015-10-16 10:54:32
【问题描述】:
我正在尝试将来自 Devise 的用户 ID 放在我的应用程序的路由中。例如 (www.test.com/users/1/offers)
我的应用程序运行良好,但尝试在没有“用户”的控制器中调用 redirect_to 时遇到路由匹配错误。
错误
没有路由匹配 {:action=>"index", :controller=>"offers", :user_id=>nil} 缺少必需的键:[:user_id]
welcome_controller.rb(不需要用户登录)
class WelcomeController < ApplicationController
def index
@skip_footer = true
if user_signed_in?
redirect_to user_offers_path(@user)
else
end
end
end
routes.rb
devise_for :users
resources :users do
resources :offers do
member do
put :tourcomplete
end
end
end
任何帮助都会很棒!
编辑
控制器
def index
if current_user.present?
@offers = Offer.all
else
redirect_to root_url
end
def tourcomplete
current_user.update_attributes(tourcomplete: true)
redirect_to root_url
end
@featured_offers = Offer.where(featured: true)
end
类别控制器
resources :categories, only: :show
【问题讨论】:
-
如何获得@user 变量?
-
发布 rake 路线会有帮助吗?
标签: ruby-on-rails ruby ruby-on-rails-4 devise