、ActiveRecordのが決定どのように名前は、ActiveRecordのが決定どのように名前は、@ user.nameで
データベース列または方法であるかどうかをデータベース列またはクラスのメソッドであるかどうかクラス?
、ActiveRecordのが決定どのように名前は、ActiveRecordのが決定どのように名前は、@ user.nameで
データベース列または方法であるかどうかをデータベース列またはクラスのメソッドであるかどうかクラス?
短いアクティブレコードでは、モデルクラスの各テーブル列のゲッターとセッターメソッドが定義されます。
あなたが移行して、あなたのテーブルを作成すると、Railsは自動的に割り当てられますどんなモデルのためのメソッドの名前などの属性/列の名前:あなたが説明した場合
create_table :users do |t|
t.string "name" # name will be converted to a method for the Model User
end
、データベース列nameは、使用可能なメソッドです。 @user.name
はデータベース列を検索し、@user
を設定することに応じて、データベースの名前列に値をチェックします。値があれば、その値をあなたに返します。値がない場合は、nilを返します。
ユーザテーブルにカラム名とメソッド名の両方がある場合、メソッド名が呼び出されます。
たとえば、
class User < ApplicationRecord
def name
"test"
end
end
Userテーブル - > name列がのインスタンスメソッドとして、データベースのすべての列名を作るために `アクティブrecord`バイ・デフォルト機能ザッツつのエントリ「モハン」
User.first.name
"test" #because each column name in user table is getter setter method of ActiveRecord
を持っていますモデル。 –