大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Ruby on Rails自定义迁移生成器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class User < ActiveRecord::Base # requires 'avatar_identifier','avatar_extension','avatar_size' has_attached :avatar end
有可能有类似的东西:
rails g model user name:string avatar:attached
导致:
create_table :users do |t| t.String :name t.String :avatar_identifier t.String :avatar_extension t.Integer :avatar_size end
如果这是不可能的,任何方式:
create_table :users do |t| t.String :name t.attached :avatar end
生成多个字段?谢谢!
require 'active_support' require 'active_record' class YourApplication module scheR_456_11845@aDefinitions module ExtraMethod def attachment(*args) options = args.extract_options! args.each do |col| column("#{Col}_identifier",:string,options) column("#{Col}_extension",options) column("#{Col}_size",:Integer,options) end end end def self.load! ::ActiveRecord::ConnectionAdapters::TableDefinition.class_eval { include YourApplication::scheR_456_11845@aDefinitions::ExtraMethod } end end end ActiveSupport.on_load :active_record do YourApplication::scheR_456_11845@aDefinitions.load! end
然后你可以做一些像:
rails g model Person name:string title:string avatar:attachment
这将创建以下迁移:
def self.up create_table :people do |t| t.String :name t.String @R_764_6964@ t.attachment :avatar t.timestamps end end
如果然后运行迁移,则rake db:migrate将创建以下Person模型:
ruby-1.9.2-p0 > Person => Person(id: Integer,name: String,title: String,avatar_identifier: String,avatar_extension: String,avatar_size: Integer,created_at: datetiR_456_11845@e,updated_at: datetiR_456_11845@E)
希望这可以帮助!!
以上是大佬教程为你收集整理的ruby-on-rails – Ruby on Rails自定义迁移生成器全部内容,希望文章能够帮你解决ruby-on-rails – Ruby on Rails自定义迁移生成器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。