1

私が取り組んできたRailsアプリがあります。ユーザー、カタログ、および製品をセットアップしました。

ユーザーは多くのカタログを持っています。カタログには多くの製品があります。

Products コントローラーで、製品を作成しようとしています。これは私が現在持っている機能です:

def create
  @product = @catalogue.products.build(params[:product])

  if @product.save
    flash[:success] = "Product created!"
    redirect_to @catalogue
  else
    flash[:error] = "Save error: Product not created."
    render 'static_pages/home'
  end
end

before_filter を使用して @catalog を設定する関数があります。

  def get_catalogue 
    @catalogue = Catalogue.find_by_id(:catalogue_id)
  end

私が得ているエラーは次のとおりであるため、この関数は機能していないようです。

ProductsController#create の NoMethodError

nil:NilClass の未定義のメソッド「products」

新しいアクションが実行された後に、製品の catalogue_id が設定されると想定しました。

事前に助けてくれてありがとう。

4

2 に答える 2

2

問題は にあると思いますbefore_filterparams[:catalogue_id]記号ではなく使うべきだと思います。

def get_catalogue 
  @catalogue = Catalogue.find_by_id(params[:catalogue_id])
end
于 2013-04-07T15:43:24.353 に答える