我正在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
我感谢任何帮助。我是新手!