当我尝试访问我的rails应用程序中的以下网址时出现错误。
http://localhost:3000/origtexts/1/reviews/new
的routes.rb
resources :origtexts do
resources :reviews
end
它正确地传递了评论(1)的参数但是我得到的错误是对于ReviewController#new中的行的未定义方法`review'。
reviews_controller.rb
class ReviewsController < ApplicationController
before_filter :find_origtext
before_filter :find_review, :only => [:show, :edit, :update, :destroy]
def new
@review = @origtext.review.build
end
def show
end
def create
@review = @origtext.reviews.build(params[:review])
if @review.save
flash[:notice] = 'Review has been created'
redirect_to [@origtext, @review]
else
flash[:alert] = 'Review has not been created'
render :action => 'new'
end
end
private
def find_origtext
@origtext = Origtext.find(params[:origtext_id])
end
def find_review
@review = @origtext.reviews.find(params[:id])
end
end
有关如何解决这个问题的建议吗?
答案 0 :(得分:4)
在此行中将review
更改为reviews
@review = @origtext.review.build
要
@review = @origtext.reviews.build