3

構成ファイルconfig/initializers / inflections.rbがあり、この質問に従って、特定のアイテムの精製を変更できます。rubyon rails複数化ヘルプ?

しかし、私はそれには興味がありません。生成されたモデル名の自動変更をオフにしたい。

次に例を示します。

rails generate scaffold UserData data1:string data2:string

データが「データム」に変更されます:

%] cat app/models/user_datum.rb 
class UserDatum < ActiveRecord::Base
  attr_accessible :data1, :data2
end

これは望ましくない動作です。

どうすればオフにできますか?

具体的には、よろしければ。「そのためのレシピを変更する必要がある」などと言う人がいるスレッドをいくつか見ましたが、これを行うための実際のガイドはありません。

(人々がこれに「レールのやり方に固執する必要があります。これには正当な理由があり、長期的にはうまくいくでしょう」と答え始めたいと思うでしょう。しないでください)

4

2 に答える 2

5

まず第一に、特異ですUserDatum

とにかく:

config/initializers/inflections.rbあなたの:を変更します

ActiveSupport::Inflector.inflections do |inflect|
  inflect.uncountable %w(UserData)
end

(たとえば、アンダースコアを使用する場合user_data、またはその両方を使用する場合など、使用する命名規則を使用してください。)

すべての複数形を削除したい場合(大ざっぱ:これは世界中のすべてに影響します):

ActiveSupport::Inflector.inflections do |inflect|
  inflect.clear
  inflect.singular(/$/i, '')
end

モデル/モデルファイルの名前付けのみを制御する場合は、パッチを適用しModelGeneratorます。

module Rails
  module Generators
    class ModelGenerator
      def plural_name; singular_name; end
      def plural_file_name; file_name; end
    end
  end
end
于 2012-09-08T12:10:16.780 に答える
0

これを行う最良の方法は次のとおりです。

rails generate scaffold HouseData --force-plural

(それはまだアイテムごとの修正ですが、グローバルでアプリの他の部分にも影響を与える複数化のものを台無しにすることはありません)

于 2012-09-09T01:24:00.557 に答える