Ruby on rails 控制器的创建操作中的生成方法正在创建给错误的用户
我试图为一个特定的“审查请求”创建一个“审查”,但我现在设置它的方式是,当我选择“提供审查”按钮时,它会为一个随机审查请求创建一个审查。 以下是我的控制器:Ruby on rails 控制器的创建操作中的生成方法正在创建给错误的用户,ruby-on-rails,Ruby On Rails,我试图为一个特定的“审查请求”创建一个“审查”,但我现在设置它的方式是,当我选择“提供审查”按钮时,它会为一个随机审查请求创建一个审查。 以下是我的控制器: class ReviewsController < ApplicationController def create @review = current_user.reviews.build(params[:review_request_id]) if @review.save flash[:succ
class ReviewsController < ApplicationController
def create
@review = current_user.reviews.build(params[:review_request_id])
if @review.save
flash[:success] = "Review Created"
redirect_to review_path(@review)
else
flash[:error] = "Review Offer Sent"
redirect_to root_url
end
end
def show
@review_request = ReviewRequest.find(params[:id])
end
end
在models/review.rb文件和
belongs_to :user
在review_request.rb文件中
这是“审阅请求”控制器中的索引操作。带有链接的分部在索引视图中。可能是问题的一部分
def index
@review_requests = ReviewRequest.paginate(page: params[:page])
end
尝试对“params[:review_request_id]”使用“put”语句,并检查您得到的值。问题似乎出在表单字段的定义上。这里实际上有两个问题。我用以下方法解决了第一个问题(审查不是使用审查请求id创建的): 在审查请求中,以及:
<%= link_to "Offer A Review", reviews_path(:review_request_id => review_request), :method => :post %>
您确定
create
方法中的params[:review\u request\u id]
正确吗。如果不是,那么您将不会得到请求的审阅,而是另一个审阅。首先确保它是您为特定的“审阅请求”选择的。请添加review.build方法的定义。@Alex-我使用的是has\u many关联,因此来自rails api:collection.build(attributes={},…)返回集合类型的一个或多个新对象,这些对象已使用属性实例化并通过外键链接到此对象,但尚未保存。@Saurabh-我肯定认为params属性是错误的,但是我不知道如何修复它。我感觉我没有正确地实例化参数。你能提供代码吗?或者在哪里找到它?我在创建操作中输入了puts params[:review_request_id],但它没有显示在rails服务器中。对不起,我是新来的。:)在create action-'puts“my id===”+params[:review\u request\u id]中写下这句话。它返回为空,我想我应该猜到了,因为插入到“reviews”中的数据显示:[“review\u request\u id”,nil]正在为随机的审核请求生成审核,因为审核请求\u id是随机设置的(据我所知)
def index
@review_requests = ReviewRequest.paginate(page: params[:page])
end
@review_request = current_user.review_requests.build(params[:review_request])
<%= link_to "Offer A Review", reviews_path(:review_request_id => review_request), :method => :post %>
@review = Review.find(params[:id])
@review_request = ReviewRequest.find(@review.review_request_id)