[解決済み] モデルでヘルパーを使用する:ヘルパーの依存関係を含めるにはどうしたらいいですか?
2022-10-25 20:24:13
質問
テキストエリアからのユーザ入力を処理するモデルを書いています。 以下のアドバイスに従って http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input のアドバイスに従って、before_validateコールバックを使って、データベースに保存する前にモデル内の入力をクリーンアップしています。
私のモデルの関連する部分は次のようになります。
include ActionView::Helpers::SanitizeHelper
class Post < ActiveRecord::Base {
before_validation :clean_input
...
protected
def clean_input
self.input = sanitize(self.input, :tags => %w(b i u))
end
end
言うまでもなく、これはうまくいきません。 新しいPostを保存しようとすると、以下のエラーが表示されます。
undefined method `white_list_sanitizer' for #<Class:0xdeadbeef>
どうやらSanitizeHelperはHTML::WhiteListSanitizerのインスタンスを作成するようですが、私のモデルに混ぜるとHTML::WhiteListSanitizerを見つけることができないようです。 なぜでしょうか? これを修正するために、私は何をすることができますか?
どのように解決するのですか?
1行目を以下のように変更するだけです。
include ActionView::Helpers
とすると動作します。
UPDATEしてください。 Rails 3用です。
ActionController::Base.helpers.sanitize(str)
クレジットは lornc の回答
関連
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".
-
[解決済み] 属性とカラムの違いは何ですか?
-
[解決済み] Android Phone Model programmatically取得 , How to get Device name and model programmatically in android?
-
[解決済み】Ruby on Railsでコンソールからコントローラ/ビューヘルパーメソッドを呼び出すにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] rake db:migrateを使って1ステップだけロールバックする方法
-
[解決済み] Paramが無いか、値が空である。ParameterMissing in ResultsController#update
-
[解決済み] Rubyのクラスで未初期化の定数エラーが発生する
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] Ruby on rails アプリで ES6 (ES2015) を使用するにはどうすればよいですか?