この RailsCast を使用して、ショッピング カート システムの一部を作成しました。http://railscasts.com/episodes/142-paypal-notifications
そこには、通知のために PayPal によって呼び出されるコードがあります。
def create
PaymentNotification.create!(:params => params, :cart_id => params[:invoice], :status => params[:payment_status], :transaction_id => params[:txn_id])
render :nothing => true
end
Heroku で試してみましたが、警告もエラーもありませんでした。PaymentNotification オブジェクトはデータベースに正常に作成されましたが、ID 以外はすべて nil でした! 私はherokuコンソールを開いて試しました:
irb(main):002:0> PaymentNotification.create!(:cart_id => "2", :status => "Complete", :transaction_id => "XYZXYZXYZXYZXYZ")
< => "2", :status => "Complete", :transaction_id => "XYZXYZXYZXYZXYZ")
これをくれたのは、
WARNING: Can't mass-assign protected attributes: cart_id, status, transaction_id
この警告が Heroku ログに表示されなかったのはなぜですか? とにかく正常に作成されたのはなぜですか (エラーではなく単なる警告であるためですか?)
これらに attr_accessible を使用できますか? とにかく通知を検証する必要があります ( https://www.paypal.com/cgi-bin/webscr?cmd=p/acc/ipn-info-outside )