我是ruby on rails的新手,基本上我希望一个用户有一个评论,如果用户有评论,用户被重定向到编辑页面,如果一个用户添加了评论但是我有这个工作如果我以另一个用户身份登录,我会向拥有评论的用户显示一个编辑页面。
这是我在review_controller
中使用的代码。
def new
if logged_in?
#@review = Review.new
@review = Review.find_by(session[:user_id])
@review = Review.find_by(product_id: params[:id])
if @review.blank?
@review = Review.new(product_id: params[:id],
user_id: User.find(session[:user_id]).id)
session[:return_to] = nil
else
render action: 'edit'
end
else
session[:return_to] = request.url
redirect_to login_path, alert: "You need to login to write a review"
end
end
答案 0 :(得分:0)
首先,我猜
@review = Review.find_by(session[:user_id])
应该是
@review = Review.find_by(user_id: session[:user_id])
其次,你对@review的第二个定义会覆盖第一个。因此,如果您访问其他用户审核过的产品页面,则审核不会为空白。