我想知道我是否能以某种方式使“stat”成为以下函数中的变量:
def stats(stat)
self.items.sum(:stat) + self.stat
end
我想知道如何制作:self.items.sum(:stat)中的stat变量。我不确定语法。
对不起,如果这是一个可怕的新问题。
项目迁移:
class CreateItems < ActiveRecord::Migration
def change
create_table :items do |t|
t.string :title
t.text :content
t.integer :price
t.integer :strength
t.integer :agility
t.integer :intellect
t.integer :will
t.integer :perception
t.integer :hearm
t.integer :laarm
t.integer :raarm
t.integer :charm
t.integer :llarm
t.integer :rlarm
t.integer :damage
t.integer :hardpoints
t.timestamps
end
end
end
角色迁移:
class CreateCharacters < ActiveRecord::Migration
def change
create_table :characters do |t|
t.string :name
t.text :bio
t.integer :strength
t.integer :agility
t.integer :intellect
t.integer :will
t.integer :perception
t.integer :hearm
t.integer :laarm
t.integer :raarm
t.integer :charm
t.integer :llarm
t.integer :rlarm
t.integer :currency
t.integer :user_id
t.timestamps
end
end
end
答案 0 :(得分:0)
我确定你想要什么
def stats(stat)
stat = stat.to_sym
items.sum(stat) + read_attribute(stat)
end
stat = stat.to_sym
只是为了确保它是一个符号,所以你可以传递一个字符串,它仍然可以工作,但如果你只传递符号则不需要。
所以你应该把它称为
character.stats(:strength)
或character.stats('strength')