Je me demande si je peux en quelque sorte faire de "stat" une variable dans la fonction suivante:
def stats(stat)
self.items.sum(:stat) + self.stat
end
Je me demande comment faire: stat dans self.items.sum (: stat) une variable. Je ne suis pas sûr de la syntaxe.
Désolé si c'est une question horriblement newbish.
Migration des articles:
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
Migration des personnages:
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
Réponses:
0 pour la réponse № 1Je suis sûr de ce que tu veux
def stats(stat)
stat = stat.to_sym
items.sum(stat) + read_attribute(stat)
end
stat = stat.to_sym
est juste pour s’assurer que c’est un symbole, ainsi vous pouvez passer une chaîne et cela fonctionnera toujours, mais ce n’est pas nécessaire si vous ne transmettez que des symboles.
alors vous devriez l'appeler comme
character.stats(:strength)
ou character.stats("strength")