Rails: 创建方法和索引方法 NoMethodError 问题
Rails: Create Method and Index Method NoMethodError issue
我有一个名为 ReferralRequest 的模型的索引视图和操作。当我创建推荐请求时,我的控制器中的创建方法呈现索引,并且在索引方法中我有 @referral_requests = ReferralRequest.all.
然而,出于某种原因,当我在 /new 表单上点击提交并成功创建推荐请求时,我在 ReferralRequests#create 中收到一个 NoMethodError,这是索引中此行中的一个未定义方法 "each"查看:
<% @referral_requests.each do |referral_request| %>
我可以通过在我的创建方法中添加@referral_requests = ReferralRequest.all 来解决这个错误,但这对我来说似乎是错误的。
谁能知道这是怎么回事?感谢反馈!
这是我的完整推荐请求控制器:
class ReferralRequestsController < ApplicationController
before_action :require_login
def index
@referral_requests = ReferralRequest.all
end
def edit
@referral_request = ReferralRequest.find(params[:id])
end
def update
@referral_request = ReferralRequest.find(params[:id])
if @referral_request.update_attributes(referral_request_params)
flash[:success] = "Referral Request Updated!"
render 'referral_requests/index'
else
render "edit"
end
end
def create
@referral_request = current_user.referral_requests.build(referral_request_params)
if @referral_request.save
flash[:success] = "Referral Request Created!"
render 'referral_requests/index'
else
Rails.logger.info(@referral_request.errors.inspect)
@feed_items = []
render 'static_pages/home'
end
end
def destroy
end
def new
@patient = Patient.find(params[:patient_id])
@referral_request = current_user.referral_requests.build(patient: @patient) if signed_in?
end
def show
@referral_request = ReferralRequest.find(params[:id])
end
private
def referral_request_params
params.require(:referral_request).permit(:content, :patient_id, concern_ids: [],
insurance_ids: [], race_ids: [], language_ids: [], gender_ids: [])
end
end
更改此行:
render 'referral_requests/index'
至:
redirect_to action: :index
因为呈现模板本身不会调用控制器操作索引,但重定向会
我有一个名为 ReferralRequest 的模型的索引视图和操作。当我创建推荐请求时,我的控制器中的创建方法呈现索引,并且在索引方法中我有 @referral_requests = ReferralRequest.all.
然而,出于某种原因,当我在 /new 表单上点击提交并成功创建推荐请求时,我在 ReferralRequests#create 中收到一个 NoMethodError,这是索引中此行中的一个未定义方法 "each"查看:
<% @referral_requests.each do |referral_request| %>
我可以通过在我的创建方法中添加@referral_requests = ReferralRequest.all 来解决这个错误,但这对我来说似乎是错误的。
谁能知道这是怎么回事?感谢反馈!
这是我的完整推荐请求控制器:
class ReferralRequestsController < ApplicationController
before_action :require_login
def index
@referral_requests = ReferralRequest.all
end
def edit
@referral_request = ReferralRequest.find(params[:id])
end
def update
@referral_request = ReferralRequest.find(params[:id])
if @referral_request.update_attributes(referral_request_params)
flash[:success] = "Referral Request Updated!"
render 'referral_requests/index'
else
render "edit"
end
end
def create
@referral_request = current_user.referral_requests.build(referral_request_params)
if @referral_request.save
flash[:success] = "Referral Request Created!"
render 'referral_requests/index'
else
Rails.logger.info(@referral_request.errors.inspect)
@feed_items = []
render 'static_pages/home'
end
end
def destroy
end
def new
@patient = Patient.find(params[:patient_id])
@referral_request = current_user.referral_requests.build(patient: @patient) if signed_in?
end
def show
@referral_request = ReferralRequest.find(params[:id])
end
private
def referral_request_params
params.require(:referral_request).permit(:content, :patient_id, concern_ids: [],
insurance_ids: [], race_ids: [], language_ids: [], gender_ids: [])
end
end
更改此行:
render 'referral_requests/index'
至:
redirect_to action: :index
因为呈现模板本身不会调用控制器操作索引,但重定向会