我正在为体育教练开发一个网站。我目前正在尝试制作一个表单,让我的网站用户注册参加不同的体育赛事。当用户登录时,我希望他们能够单击特定事件旁边的注册按钮,然后他们的user_id
和event_id
将被放入我创建的表中。这是注册控制器的新部分:
def new
@event = Event.find(params[:event_id])
@user = User.current
@user_id = @user.id
@event_registration = @event.event_registrations.build({:user_id => @user_id},
:without_protection =>true)
end
所以基本上这是找到相关的id。事件ID很好但是当它到达当前用户时它似乎没有找到登录的人的id。我有一个会话助手,它是:
module SessionsHelper
def sign_in(user)
remember_token = User.new_remember_token
user.update_attribute(:remember_token, User.hash(remember_token))
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@current_user = user
end
def current_user
remember_token = User.hash(cookies[:remember_token])
@current_user ||= User.find_by(remember_token: remember_token)
end
def current_user?(user)
user == current_user
end
def signed_in_user
unless current_user
store_location
redirect_to signin_url, notice: "Please sign in."
end
end
我想我已经在这里包含了代码的所有相关部分。有谁知道为什么它没有找到当前的用户ID?
答案 0 :(得分:0)
在RegistrationsController
中添加SessionHelper
,如下所示:
include SessionHelper
并更改
@user = User.current
为:
@user = current_user