0

次の関数で「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
4

1 に答える 1

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')

于 2012-07-25T21:47:51.167 に答える