Ich frage mich, ob ich "stat" in der folgenden Funktion irgendwie zu einer Variablen machen kann:
def stats(stat)
self.items.sum(:stat) + self.stat
end
Ich frage mich, wie ich: stat in self.items.sum (: stat) zu einer Variablen machen soll. Ich bin mir nicht sicher über die Syntax.
Tut mir leid, wenn dies eine schrecklich neue Frage ist.
Artikelmigration:
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
Charaktermigration:
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
Antworten:
0 für die Antwort № 1Ich bin sicher, was Sie wollen
def stats(stat)
stat = stat.to_sym
items.sum(stat) + read_attribute(stat)
end
stat = stat.to_sym
soll nur sicherstellen, dass es ein Symbol ist, damit Sie eine Zeichenfolge übergeben können, und es wird weiterhin funktionieren, aber es ist nicht erforderlich, wenn Sie nur Symbole übergeben.
so solltest du es nennen als
character.stats(:strength)
oder character.stats("strength")