Rails では、テーブルからフィールド名を抽出する ORM を使用します。たとえば、 table がある場合items:
|id | name |
|1 | a string|
がありclass Item、インスタンスとしましょうitem。次に、次のものにアクセスできます。
item.id # -> 1
item.name # -> a string
あなたの例によると:
def foo
name = 'New Name' # You are not setting the variable, you are creating a local variable called name
# To set variable
self.name = 'a name'
end
または
def foo
:name => 'New Name' # you are returning a hash, but you are lacking brackets, not setting a variable
end
この行を使用すると、次のattr_accessible :name, :emailことができます。
Item.new({
name: 'asd',
email: 'sad'
})
:emailたとえば、 を追加しないattr_accessibleと、前の例では次のような警告が表示されます。
Can't mass-assign protected attributes: email
これは、次のようなコントローラーでパラメーターを受け取る場合に役立ちます。
Item.new(params[:item])
params がハッシュであることを確認してください。Rails サーバー コンソールで確認できます。