rails r でターミナルからRailsのコードを実行する

こんにちは!kossyです!




さて、今回はrails r コマンドでターミナルからRailsのコードを実行する時のTIPSをご紹介できればと思います。




環境
Rails 6.0.2.1
Ruby 2.5.1
MacOS Mojave




クラスの継承順位を出力する


例えばRailsアプリケーションにBookモデルが定義されているとします。

app/models/book.rb

class Book < ApplicationRecord
end

この場合、ターミナルで、

$ bundle exec rails r "puts Book.new.class.ancestors"

Book
Book::GeneratedAssociationMethods
Book::GeneratedAttributeMethods
ApplicationRecord
ApplicationRecord::GeneratedAssociationMethods
ApplicationRecord::GeneratedAttributeMethods
ActiveRecord::Base
ActionText::Attribute
ActiveStorage::Reflection::ActiveRecordExtensions
ActiveStorage::Attached::Model
GlobalID::Identification
ActiveRecord::Suppressor
ActiveRecord::SecureToken
ActiveRecord::Store
ActiveRecord::Serialization
ActiveModel::Serializers::JSON
ActiveModel::Serialization
ActiveRecord::Reflection
ActiveRecord::NoTouching
ActiveRecord::TouchLater
ActiveRecord::Transactions
ActiveRecord::NestedAttributes
ActiveRecord::AutosaveAssociation
ActiveModel::SecurePassword
ActiveRecord::Associations
ActiveRecord::Timestamp
ActiveRecord::Callbacks
ActiveRecord::AttributeMethods::Serialization
ActiveRecord::AttributeMethods::Dirty
ActiveModel::Dirty
ActiveRecord::AttributeMethods::TimeZoneConversion
ActiveRecord::AttributeMethods::PrimaryKey
ActiveRecord::AttributeMethods::Query
ActiveRecord::AttributeMethods::BeforeTypeCast
ActiveRecord::AttributeMethods::Write
ActiveRecord::AttributeMethods::Read
ActiveRecord::Base::GeneratedAssociationMethods
ActiveRecord::Base::GeneratedAttributeMethods
ActiveRecord::AttributeMethods
ActiveModel::AttributeMethods
ActiveModel::Validations::Callbacks
ActiveRecord::DefineCallbacks
ActiveRecord::Locking::Pessimistic
ActiveRecord::Locking::Optimistic
ActiveRecord::AttributeDecorators
ActiveRecord::Attributes
ActiveRecord::CounterCache
ActiveRecord::Validations
ActiveModel::Validations::HelperMethods
ActiveSupport::Callbacks
ActiveModel::Validations
ActiveRecord::Integration
ActiveModel::Conversion
ActiveRecord::AttributeAssignment
ActiveModel::AttributeAssignment
ActiveModel::ForbiddenAttributesProtection
ActiveRecord::Sanitization
ActiveRecord::Scoping::Named
ActiveRecord::Scoping::Default
ActiveRecord::Scoping
ActiveRecord::Inheritance
ActiveRecord::ModelSchema
ActiveRecord::ReadonlyAttributes
ActiveRecord::Persistence
ActiveRecord::Core
ActiveSupport::Dependencies::ZeitwerkIntegration::RequireDependency
ActiveSupport::ToJsonWithActiveSupportEncoder
Object
PP::ObjectMixin
JSON::Ext::Generator::GeneratorMethods::Object
ActiveSupport::Tryable
ActiveSupport::Dependencies::Loadable
Kernel
BasicObject

このような実行結果が得られます。

Railsは裏でめちゃめちゃいろんなコードが動いているのを実感できますね、、、



勉強になりました。