Railsの話は久しぶりですね。
さて、タイトルの通りNGワードの検証ですが
あまり使う機会がないかもしれないですね。。
しかし、投稿サイト等構築する際には必須なのかもしれません
変な事件も多いですからね
ということで今回はNGワードの検証をチャチャっとやってしまいましょう^-^
まず、NGワードをtxtファイルに書き出していきます。
この時既に正規表現として書いていきます。
例:
○○|○○○|○○○○
これをどこでもいいですがRAILS_ROOT内にng.txtとして保存します。
自分はdocに置いておくことにします。
次にモデルにvalidateを書いていきます。
投稿サイトを意識してArticleクラスとしましょう。
class Article < ActiveRecord::Base
@@ng = Regexp.new(open("#{RAILS_ROOT}/doc/ng.txt").read)
#ここに定数として正規表現(NGワード)を予め入れておきます。
validates_each :title, :body do |record, attr, value|
if value =~ @@ng
record.errors.add attr, 'がNGワードを含んでいます。'
end
end
end
これで、題名や本文にNGワードが入ってるとエラーを返すようになります。
しゅんさつですねー^-^
2008年8月19日火曜日
2008年8月12日火曜日
2008年8月11日月曜日
2008年7月29日火曜日
[Rails2.0.2]画像アップロード機能のテスト
最近テストばかりしてます・・・
テストしたい内容は分かるのにどうやって書けばいいのか分からない時ほど
もどかしいものはないですね;-;
今日は画像アップロード機能のテストのメモ。
class UserTest < ActiveSupport::TestCase
#画像アップロード機能のテスト(異常テスト)
def test_image_upload
user = User.new
image = ActionController::TestUploadedFile.new(
"#{RAILS_ROOT}/test/testdata_sizeover.jpg", 'image/jpg'
)
image.binmode #この記述がないと画像ファイルの読み込みがおかしくなる為注意※Windows環境のみ
user.uploaded_image = image
assert !user.valid?
assert user.errors.on(:uploaded_image)
assert_equal 'のサイズが大き過ぎます(最大64KB)。',
user.errors.on(:uploaded_image)
end
end
※Userモデル、DBに画像保存する場合の記述です。
テストしたい内容は分かるのにどうやって書けばいいのか分からない時ほど
もどかしいものはないですね;-;
今日は画像アップロード機能のテストのメモ。
class UserTest < ActiveSupport::TestCase
#画像アップロード機能のテスト(異常テスト)
def test_image_upload
user = User.new
image = ActionController::TestUploadedFile.new(
"#{RAILS_ROOT}/test/testdata_sizeover.jpg", 'image/jpg'
)
image.binmode #この記述がないと画像ファイルの読み込みがおかしくなる為注意※Windows環境のみ
user.uploaded_image = image
assert !user.valid?
assert user.errors.on(:uploaded_image)
assert_equal 'のサイズが大き過ぎます(最大64KB)。',
user.errors.on(:uploaded_image)
end
end
※Userモデル、DBに画像保存する場合の記述です。
2008年7月17日木曜日
[Rails2.0.2]携帯電話から画像のアップロード・・・の後
これはもうメールから添付ファイルで送信してもらって、
それを読み込んで保存するって流れしかないらしいですが。
そこらへん説明すると長いんでまた後日^-^
で、アップロードした画像を僕はDBに保存して
imageアクションとかでリサイズしてsend_dataしてたわけなんですが
なんか携帯から画像が見れない現象が起きたんですよ。
PCからは見れるのにー;-;
何でかなーと画像のプロパティ見るとtext/html とかなってる・・・
ああーーー
Mobile on Rails 使ってるからですねwww
このプラグインはページの文字コードを変換するafter_filter が働いてるわけで、
画像も変換されてます^-^
もう!と思いながら
imageアクションはそのafter_filter を無効にしちゃいます。
class UsersController < ApplicationController
skip_after_filter :after_filter_for_mobile, :only => [:image]
def image
画像リサイズ処理
send_data処理
end
end
これで幸せになれました^-^
それを読み込んで保存するって流れしかないらしいですが。
そこらへん説明すると長いんでまた後日^-^
で、アップロードした画像を僕はDBに保存して
imageアクションとかでリサイズしてsend_dataしてたわけなんですが
なんか携帯から画像が見れない現象が起きたんですよ。
PCからは見れるのにー;-;
何でかなーと画像のプロパティ見るとtext/html とかなってる・・・
ああーーー
Mobile on Rails 使ってるからですねwww
このプラグインはページの文字コードを変換するafter_filter が働いてるわけで、
画像も変換されてます^-^
もう!と思いながら
imageアクションはそのafter_filter を無効にしちゃいます。
class UsersController < ApplicationController
skip_after_filter :after_filter_for_mobile, :only => [:image]
def image
画像リサイズ処理
send_data処理
end
end
これで幸せになれました^-^
登録:
コメント (Atom)