スポンサーサイト
2013.07.04 Thursday
一定期間更新がないため広告を表示しています
はじめてのRuby on Rails、トラブル記録
Rails3.0から3.2.11にアップデートした時に引っかかったところ
2013.03.24 Sunday
Rails3.0のプロジェクトを3.2.3にアップデートしたら色々な所で引っかかりまくりました 3.2.0で新規PJは作ったことがあったから(まだ途中だけど)すんなり行くかなと思ったんだけど、全然!どこがマイナーバージョンアップだよ asset_pipelineを使わないようにすればもう少し楽に行ったのかもしれないけど。。。 てなわけで、今後のために引っかかったところメモ。 ActiveModel::MassAssignmentSecurity::Error以下のエントリを全文読むこと推奨。参考: github の mass assignment 脆弱性が突かれた件 とりあえず急ぎで動かしたいなら以下の対応。 config/application.rb config.active_record.whitelist_attributes = false
デフォルトはtrueだけどこれをfalseにに。ただ、できればattr_accessibleの設定をした方が良さそう。ArgumentError (A sender (Return-Path, Sender or From) required to send a message)Mailer内の各メソッド内でmailメソッドを呼んでないとメールが送られなかった。[OLD]
class NotifyMailer < ActionMailer::Base
[NEW]
default :from => 'hogehoge@hoge.com', :to => @recipients, :subject => @subject def receive_message(message) setup_email(message.recipient_id) @subject += I18n.t("You received a message") @message = message end end
class NotifyMailer < ActionMailer::Base
私のケースではdefaultでfrom, to, subjectのパラメータを全て設定していて、ActionMailer内の各メソッドでは明示的にmailメソッドを呼んでいなかったのが、どこかのバージョンから呼ばないといけなくなったようです。default :from => 'hogehoge@hoge.com' def receive_message(message) setup_email(message.recipient_id) @subject += I18n.t("You received a message") @message = message mail :to => @recipients, :subject => @subject end end 元々はdefaultでtoとsubjectを設定してたのも、メソッド内でmail()でやってみたらtoとsubjectがちゃんと設定されてなかったのでメソッド内で設定することに。defaultで設定できる方法もあるかもしれないけど、とりあえずこれで動いたのでいいやってことで。。。 あとはこれ以外にも、ActionMailerのメソッド内に分岐があって、Mailerメソッドを呼んだのにメールを送らないというケースには別の対応が必要な模様。その場合には以下の記事を参考に。 参考: Rails 3 - abandon sending mail within ActionMailer action <% form_for ... が表示されなかったこれはRails2.3の頃の名残だけど…まだ残ってたので[OLD] <% form_for @hoge do |f| %>
[NEW]
<%= form_for @hoge do |f| %>
コメント
コメントする
この記事のトラックバックURL
トラックバック機能は終了しました。
トラックバック
|
Rails3レシピブック 190の技
ついにRails3対応版が出ました!!
WEB+DB PRESS Vol.58
Rails2系から3への移行時に知りたいことがひとまとまりになっててよかった!色々ググるよりこれを読む方が早い。
Rubyレシピブック 第3版 303の技
Rubyやるならこのリファレンスは必要。
Search this site
|