古いRailscastに基づくコードhttp://railscasts.com/episodes/142-paypal-notificationsを使用して、カートの情報をサイト内のさまざまな場所に渡そうとしていますが、この問題は次のコードのようです。Ruby on Railsでは、ActiveRecordの変更以来、Postを使ってデータを渡す方法はありますか?
def create
@pProduct = Product.find(params[:product])
@item = Item.create!(:cart => current_cart, :product => @pProduct, :quantity => 1, :pPrice => @pProduct.pPrice)
flash[:notice] = "Successfully added #{@pProduct.pName}"
redirect_to current_cart_url
end
そして、この入力を処理するコードは、アプリケーションコントローラにあります。
def current_cart
if session[:cart_id]
@current_cart ||= Cart.find(session[:cart_id])
session[:cart_id] = nil if @current_cart.purchased_at
end
if session[:cart_id].nil?
@current_cart = Cart.create!
session[:cart_id] = @current_cart.id
end
@current_cart
end
生成されるエラーは次のとおりです。
ActiveModel::MissingAttributeError in ItemsController#create
can't write unknown attribute `cart_id'
Rails.root: /home/timewaster/Aptana Studio 3 Workspace/cs2512
Application Trace | Framework Trace | Full Trace
app/controllers/items_controller.rb:4:in `create'
私はこれはおそらく途方もなく単純なものですけど、私はこれで過去半時間の壁に頭を非難されてきたように任意の入力は歓迎されるであろう。
EDIT:リクエスト通り、routes.rb私はこの場所のどこにいるのか謝罪します。
http://pastebin.com/gq4Ekzvn EDIT:私はばかだと思います。
'routes.rb'ファイルを投稿しても構いませんか?あなたがそこに何かを見つけられないかもしれないようですね? – mportiz08
http://pastebin.com/gq4Ekzvn簡単に貼り付けられました。 current_cartメソッドは実際に私のアプリケーション・コントローラにありますが、私は無視することができました。 – timewaster
そこにルートヘルパーとしてcurrent_cart_urlを定義するものはありません。 'rake routes'を実行して' current_cart_url'が定義されていることを確認できますか? – mportiz08