rails:booleanのカラム名の命名規約は?

このQ&Aのポイント
  • Railsプロジェクトにおけるboolean型のカラム名の命名規約について質問です。
  • PHPで開発されたプロダクトではカラム名の末尾に「_flg」をつける規約がありましたが、新規プロジェクトではどのような命名規約があるのか知りたいです。
  • Gemのdeviceでは過去分詞でカラム名を生成しているため、名詞のカラム名を使うと混同するデメリットがあります。現在は各案件ごとに命名規約が異なるようです。
回答を見る
  • ベストアンサー

rails:booleanのカラム名の命名規約は?

ちょっと興味が湧いたので質問をさせてください。 皆さんの案件で、railsプロジェクトをやっていた場合、booleanの型のカラム名の命名規約はどうしていらっしゃるでしょうか? 私の属しているプロジェクトでは、元々がPHPでできていたプロダクトだったので、その時の規約であった カラム名の末尾に「_flg」をつけているものはbooleanに従って開発をしていました。 ここの規約自体の批判は置いておいていただいて、仮に新規でプロジェクトを立ち上げる場合は、どの様な命名規約にするでしょうか? ログイン周りの自動生成をしてくれるgemのdeviceだとpublicedなど、過去分詞でカラム名を生成しています。 railsチュートリアルなどでは「single_issue」等で名詞のカラム名を、ままで使っています。 (これはこれでrailsチュートリアルがおかしい気がしますが) この規約だと、"公開されている記事一覧を取得する"とかの場合にscopeとして、Article.publicedとつけたい場合に、これと名前が衝突して混同する、トイうデメリットがありますし、名詞をままで付けると、そもそもこのカラムがbooleanであるニュアンスが消えてしまいます。 結局なところ、支配的な命名規約はまだ出来ていない、今のところはある程度好み ということなのかなと思っています。 そうであれば、各々の案件での命名規約を知りたくなったので質問をさせていただきました。 どうか、宜しくお願い致します。

  • Ruby
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

とりあえず_flgカラムに一票ですかね。 どうしてもpublicedとかは条件判定用メソッドに使うイメージが強いですね。

m_matsubara
質問者

お礼

どうも、ありがとうございます。 まぁ、でもrailsだとカラム名で母音削りを行う文化はないので、_flagとかの方が良さそうですね。 英語圏で納得してもらえるルールなのかどうかが微妙なのが一番の問題です。

関連するQ&A

  • 命名規約は連番でいいのか?

    私はWeb開発者です。 下請け開発の場合に必ず命名規約に疑問を感じます。 原因は「ソースファイル名や画面名、テーブル名などに連番をつける」命名規約が多いからです。 自社で開発する場合は連番は使いません。 連番を付ける理由はいくつか考えられますが、どれも全て単なる慣習としてしか見えないのです。 ・COBOL時代にそうしていた ・管理がしやすい。(Excelで扱いやすい) 連番ではなく、各ソースの役割で命名するほうが、理にかなっていると思います。 1、他に理由があれば教えてください。 2、大規模なシステムでも連番では命名したりしないよ、という実例をご存知の方は教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • boolean型のフィールドとゲッターメソッドの命名について

    boolean型のフィールドとゲッターメソッドの命名は以下のルールに従うと把握しています。 boolean型のフィールド名は、接頭辞にisをつける boolean型を返すメソッド名は、接頭辞にisをつける それを踏まえると、 フィールド名がisXxxの場合のメソッド名はisIsXxx()とするのでしょうか? なんとなくおかしいような気がするのですが、 普通はどうするのが一般的なのでしょうか?

    • ベストアンサー
    • Java
  • フィールド名の命名にアドバイスをお願いします。

    フィールド名の命名についてアドバイスをお願いします。 下記の意味合いのフィールドを作成する場合、みなさんはどのような命名をしますでしょうか。 (ちなみに変数名の命名にも同様の悩みを持っています・・・) ・○○する/しない (つまりBoolean型です)         例: 表示する/しない ・○○の表示             例: ページ数の表示 ・○○の説明文/解説文           例: リンク先の説明 ・○○の一覧             例: 投稿記事の一覧 ・○○の順番         例: データ表示順 ・○○を経由したかどうか         例: 経由フラグ (これは変数名の命名の悩みです。) 今まで命名に時間をかけてしまったので、この質問で一気に解決できたら・・・と思っております。よろしくお願いします。

  • Ruby on RailsでDBカラムにハイフン

    初歩的な質問で恐縮です。 Ruby on Rails でDBのカラムにハイフンは使えますでしょうか。 多言語対応で中国語などを扱っているのですが、 カラム名が name_zh-tw のようなものがあるのですが、値が取得できずに困っております。。 例) Items テーブルに name_zh-twがある場合。 @item = Items.find_by_i(1000) @item.name_zh-tw =>NoMethodError: undefined method `name_zh' for #<Item:0xb605f364> のようになってしまいます。。 また、上記以外の箇所でもダブルクォートで囲ったら大丈夫な場合がありますが、ログには警告がでます。これは仕方ないのでしょうか。。 [WARN] Exception occurred during reader method compilation. [WARN] Maybe name_zh-tw is not a valid Ruby identifier? [WARN] compile error ----- 環境は以下の通りです。 何卒よろしくお願いいたします。 Ruby1.8.7 Rails2.3.15 MySQL5.5

    • ベストアンサー
    • Ruby
  • メソッドの命名の仕方

    変数やメソッドの名前を決めるのは、 簡単なことのようで難しかったりします。 それでいて重要であったりもします。 そこで、1つ気になる点があるので質問させていただきます。 例えばある Util クラスがあるとします。(例として StringUtils クラス) この StringUtils は static なメソッドの集まりをもつように実装します。 文字列が空かどうか調べるために、よく使用されているのが public static boolean isEmpty(String value) というメソッドがありますが、これに疑問があります。 このメソッドを使用する場合は、StringUtils.isEmpty("abc") などとなると思いますが、これって英語の意味的におかしい気がします。(私は英語がまったくできないので偉そうなことは言えませんが、、) これだと、「StringUtlsは空だ」みたいな意味になってしまいませんか? 私はこういうときには「checkIfValueIsEmpty(String value)」のようにしています。StringUtils.checkIfValueIsEmpty("abc") これだと「StringUtils が value を空かどうかチェックする」という意味になりませんか? 皆さんはこういう場合、どのように命名されていますか? 確かに boolean を返す場合には定例や規約として「is~」が使われていますが、どうも気持ちが悪いので質問させていただきました。 以上、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • railsのscaffoldにて作成したプロジェクトの

    railsのscaffoldにて作成したプロジェクトの ViewsのEditのlink_toの第二引数の値がどこで設定されているかわかりません。 例えば、モデル名を"student"にてscaffoldを実行すると、 index.html.erbのEditはこのようになります。 <td><%= link_to 'Edit', edit_student_path(student) %></td> この"edit_student_path"というのが、何者なのかよくわかりません。 どこかで定義されているわけでもなく、動的に生成されているようですが、 仕組みが全くわかりません。 出力されたhtmlの該当部分はこのようになってます。 <a href="/students/1/edit">Edit</a> 現在、scaffoldにて生成したコントローラとビューを一階層掘り下げようとしている所で、出くわした問題です。 controllers/students_controller.rb views/students/index.html.erb ↓ controllers/hoge/students_controller.rb views/hoge/students/index.html.erb どなたかご教授いただけますでしょうか? ちなみにrailsのバージョンは2.3.5です。

    • ベストアンサー
    • Ruby
  • MySQLカラム名は日本語と英数字のどちらが良いか

    MySQLのカラム名に日本語を使うか、英数字を使うかで迷っています。英数が無難だと思うのですが、日本語の方が簡潔で分かりやすい命名ができるので、もし大した問題が無ければ日本語を使おうと考えています。 そこで3点お伺いしたく存じます。 1. 日本の企業はMySQLのカラム名に日本語を使っているケースが多いのか、それとも英数字のみのケースが多いのか、最近の傾向をご教示頂けますか。統計は無いと思いますので、体感や自社ルールの場合等でも結構です。 2. 日本語を使うことでセキュリティホールができることは考えられますか。例えば、マルチバイト文字はSQLインジェクション対策をすり抜ける・・・等。 3. 自分なら日本語と英数字のどちらを使うか。理由も添えて頂けると幸いです。 当方の開発環境は、PHP(ver. 5.5.9) + MySQL(ver. 5.6.16)です。 お手数おかけしますが、ご教示お願い致します。

    • ベストアンサー
    • MySQL
  • Rails 本番サーバーでpassengerエラー

    お世話になっております。 現在進行中のプロジェクトをgit cloneにて共有リポジトリから本番環境のサーバーに移しアプリケーションにアクセスしようとしたところ、Passengerが以下の様なエラーを吐き出してしまい、その解決策が見いだせずにいます。 A source file that the application requires, is missing It is possible that you didn't upload your application files correctly. Please check whether all your application files are uploaded. A required library may not installed. Please install all libraries that this application requires. Error message: no such file to load -- rubygems/path_support 当方環境は以下の様になります。 【共通】 サーバー Apatch DB MySQL ruby1.9.2 【ローカルサーバー(開発環境)】 MacOS X Rails 3.2.2 【共有リポジトリ】 さくらVPS 【本番サーバー(デプロイ先)】 さくらVPS CentOS6 Raisls 3.2.5 初心者故今回この質問をさせていただく上で必要な情報が何かというところも曖昧です。大変恐縮なのですが、何か支離滅裂な個所がありましたらそちらも合わせてご指摘いただければと存じます。 以下実行内容ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 【ローカルにてproductionモードでプロジェクトを実行するために以下を実行】 passengerのインストールと設定 → httpd.confの設定 → gemにてmysql2のインストール → mysqlにてDBの作成とそれに対するユーザー、パスワードを設定 → database.ymlの設定 → rake db:setup RAILS_ENV="production"を実行 補足:ここまでのプロセスでローカル環境にてproductionモードで動作しております。 この状態でgit commit → pushを行い、本番サーバーにてcloneを実行しております。 【サーバーサイドで実行したこと(公開ディレクリは/var/www/html以下はDocumetRootは/var/www/html/public/と設定してあります)】 公開ディレクトリ【html】にて共有リポジトリよりプロジェクトをclone → passengerのインストールと設定 → rake db:setup RAILS_ENV="production"を実行(末尾に--traceを付けcreateとmigrateも実行) ここまででhttp://ドメイン/コントローラー名にてプロジェクトにアクセスできると考えていたのですが、上記の様なエラーが発生し困っております。 繰り返しとなりますが、Rails初心者故上記に記させて頂いたプロセスにて足りなかったり余計であったりする個所もあるかと存じます。読みづらい文章の上大変恐縮ですが、そちら合わせてご指導いただければ幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Ruby
  • Ruby on Rails4 外部キーの渡し方

    Rails4の初心者です。 例えば、生徒の情報の一覧ページから[評価する]というリンクを押して生徒の成績をつける時、どのようにすれば生徒を一意に識別する情報を評価ページ(newアクション?)に受け渡してevaluationテーブルに登録(insert)できるでしょうか。 <画面イメージ>(students.index):scaffoldによって生成されたindexアクション 生徒名 年 組 番号 [評価する] 生徒名 年 組 番号 [評価する] 生徒名 年 組 番号 [評価する]     ・・・ <各モデル>(id, 更新日時などのデフォルトのカラムは省略) studentsモデル name:string, nen:integer, kumi:integer, num:integer evaluationモデル shusseki:integer, test:integer, taido:integer, student_id:integer データを渡すということは、formで情報をpostするのかと考えたのですがどうも実装方法が思いつきません。 よろしくお願いいたします。

  • 命名規約について

    略称を用いるときの変数名、クラス名の付け方ですが 推奨されている付け方はありますでしょうか。 例えば以下の場合だとどちらになりますか? (1)略称であっても単語区切りなので小文字 class TestDao TestDao testDao = new TestDao() (2)略称なので、大文字 claas TestDAO TestDao testDAO = new TestDAO() (2)の場合だと、例えばIDを処理するDAOを作ると class IDDAO ・・・っておかしいですよね。 なので class IdDaoだと思うのですが。

    • ベストアンサー
    • Java

専門家に質問してみよう