こんにちは!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は裏でめちゃめちゃいろんなコードが動いているのを実感できますね、、、
勉強になりました。