3

有一个配置文件 config/initializers/inflections.rb ,根据这个问题,您可以修改某些项目的纯化: ruby on 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

如果您只想控制模型/模型文件命名,请 patch 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

The best way of doing this is:

rails generate scaffold HouseData --force-plural

(it's still an item by item fix, but it doesn't mess around with the pluralization stuff, which is global and affects other parts of the app too)

于 2012-09-09T01:24:00.557 回答