/ / Ruby on Rails: Variablen in Funktionen - Ruby on Rails, Ruby, Variablen, Modell

Ruby on Rails: Variablen in Funktionen - Ruby-on-Rails, Ruby, Variablen, Modell

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 № 1

Ich 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")