Rails / Devise - current_user返回错误的用户对象

时间:2017-07-13 15:35:54

标签: ruby-on-rails devise

我正在Heroku上运行一个rails应用程序(使用Devise)。其中,users可以发布reviews

问题:用户发布了评论,并使用错误的user_id命中数据库。

以下是创建user_id时抓取review的代码:

<%= f.hidden_field :user_id, :value => current_user.id %>

我看了this github issue,但不确定它是否适用于我的案例。该问题涉及&#34;在您使用令牌身份验证时跳过持久会话,&#34;但我不明白这意味着什么。

以下内容来自我的config/initializers/devise.rb文件:

config.skip_session_storage = [:http_auth]

在视图中调用current_user问题了吗?我应该只在控制器中调用它吗?

更新:以下是来自reviews_controller.rb

的代码
def new
  @vendor = Vendor.find(params[:vendor_id])
  @review = Review.new
end

def create
  @vendor = Vendor.find(params[:vendor_id])
  @review = Review.new(review_params)

if @review.save
  redirect_to @vendor
else
  render 'new'
end 
end 
...

private
def review_params
  params.require(:review).permit(:title, :content, :rating, :flagged, :vendor_id, :user_id)
end

我感谢任何帮助。我是新手!

0 个答案:

没有答案