覆盖 rails 生成器以将 date_select 更改为 date_field
Override rails generator to change date_select into date_field
我一直在尝试覆盖 rails 生成器(当您 运行 rails generate scaffold
时)以生成日期类型 date_field
而不是 date_select
形式(时间和日期时间相同)。映射位于 railties/lib/rails/generators/generated_attribute.rb
def field_type
@field_type ||= case type
when :integer then :number_field
when :float, :decimal then :text_field
when :time then :time_select
when :datetime, :timestamp then :datetime_select
when :date then :date_select
when :text then :text_area
when :boolean then :check_box
else
:text_field
end
end
我不知道将更新后的 generated_attribute.rb
文件放在哪里。我在 rails 应用程序 lib/generators/generated_attribute.rb
和 lib/templates/generators/generated_attribute.rb
中尝试过,但没有效果。我还没有找到关于覆盖此文件以更改行为的任何其他信息。
提前致谢。使用 rails 5.2
好像还没有自动覆盖这个文件。
我把我的放在 lib/rails/generators/generated_attribute.rb
然后你可以在覆盖的 lib/rails/generators/erb/scaffold/scaffold_generator.rb
:
之上添加 require "#{Rails.root}/lib/rails/generators/generated_attribute.rb"
require "#{Rails.root}/lib/rails/generators/generated_attribute.rb"
require "rails/generators/erb"
require "rails/generators/resource_helpers"
module Erb # :nodoc:
module Generators # :nodoc:
class ScaffoldGenerator < Base # :nodoc:
有点脏,但希望对您有所帮助。
我一直在尝试覆盖 rails 生成器(当您 运行 rails generate scaffold
时)以生成日期类型 date_field
而不是 date_select
形式(时间和日期时间相同)。映射位于 railties/lib/rails/generators/generated_attribute.rb
def field_type
@field_type ||= case type
when :integer then :number_field
when :float, :decimal then :text_field
when :time then :time_select
when :datetime, :timestamp then :datetime_select
when :date then :date_select
when :text then :text_area
when :boolean then :check_box
else
:text_field
end
end
我不知道将更新后的 generated_attribute.rb
文件放在哪里。我在 rails 应用程序 lib/generators/generated_attribute.rb
和 lib/templates/generators/generated_attribute.rb
中尝试过,但没有效果。我还没有找到关于覆盖此文件以更改行为的任何其他信息。
提前致谢。使用 rails 5.2
好像还没有自动覆盖这个文件。
我把我的放在 lib/rails/generators/generated_attribute.rb
然后你可以在覆盖的 lib/rails/generators/erb/scaffold/scaffold_generator.rb
:
require "#{Rails.root}/lib/rails/generators/generated_attribute.rb"
require "#{Rails.root}/lib/rails/generators/generated_attribute.rb"
require "rails/generators/erb"
require "rails/generators/resource_helpers"
module Erb # :nodoc:
module Generators # :nodoc:
class ScaffoldGenerator < Base # :nodoc:
有点脏,但希望对您有所帮助。