2011-08-13 11 views
1
rails g migration add_anonymous_to_message anonymous:??? 

メッセージにタイトルなどを追加する場合は、rails g migration add_title_to_message title:stringと入力しますが、匿名はメッセージ送信フォームのチェックボックスです。これをデータベースに追加するにはどうすればよいのですか。チェック=匿名とボックスのチェックが外された=ユーザー名が表示されますか?:文字列がテキストの場合、チェックボックスのデータはどのようにしてレールに格納されますか?

ありがとうございました

+0

:ブール?????? – Mchl

答えて

6

本当に別のデータベース列が必要ですか?あなたはどうする可能性は、もしそのようNULL値(デフォルト)

  • 検証モデルanonymousがチェックされていない場合は、空白のユーザー名を保存すると
  • 無効になるように、モデルを検証することができます列username:stringを追加

    • ですanonymousがチェックされているメッセージは、あなたは、単にmessage.username.nil?
    • をチェック匿名であるかどうかに、後で確認すると、ユーザー名は関係なく、常にフォーム値
    • の、(nil)ブランクとして保存されます

    あなたはanonymous用に別のDBの列が必要です何らかの理由で、それは次のようになります場合:

    rails g migration add_anonymous_to_message anonymous:boolean

    ないすべてのRDBMSがboolean列(MySQLはない)をサポートしていますが、Railsがかかりますbooleanを指定したときにまたは1のいずれかに設定されている場合は、TINYINT(1)または同様の列を生成してこの処理を行います。

  • 0

    あなたはusernameを保存するためにanonymousと文字列を格納するためのブール型を使用する必要があります。

    rails g migration add_anonymous_and_username_to_message anonymous:boolean :default => false username:string 
    
    関連する問題