attr-accessor

    1熱度

    1回答

    我剛剛在上個月瞭解了Ruby,並且正在使用RSpec處理我的TDD技能。 我試圖得到以下測試通過: it "has a modified color" do @phone.color = "green" puts @phone.color.should == "green" end 這裏是我的代碼: class Phone attr_reader :nam

    1熱度

    1回答

    我在我的控制器中使用attr_accessor來存儲在applicationController中定義的方法中設置的權限,但我遇到了問題。 如果我這樣做: class ApplicationController < ActionController::Base attr_accessor :perms def self.set_permissions *permission

    0熱度

    2回答

    下面的代碼: class Dungeon attr_accessor :player def initialize(player_name) @player = Player.new(player_name) end end 現在,如果我寫的: dungeon = Dungeon.new("Robert") puts dungeon.player.n

    0熱度

    1回答

    我想動態地定義類的attr_accessor,但它使生成的方法是私人的。如何在不使用普通類語法或自己編寫方法的情況下不發生錯誤? klass = Class.new klass.send(:attr_accessor, 'name') instance = klass.new instance.name NoMethodError: private method `name' calle

    0熱度

    1回答

    嗨,我非常喜歡初學者。 我想我明白attr_accessor是如何工作的(下圖)。 「setter」是name=(name)方法。我知道那個方法相當於這個任務:name = "john"。因爲「=」是接受參數並將該參數分配給任何對象調用它的方法。 (雖然我不知道如何「名」可以考慮的對象,因爲它被分配到一個對象) 所以我的問題是:你怎麼可以指定一個變量調用一個方法,一個方法叫什麼名字?這感覺就像我失

    7熱度

    3回答

    在Ruby中,如果我只是分配一個局部變量。 sound = "bang". 是一個main.sound=("bang")方法嗎?如果是這樣,那麼在哪裏以及如何定義「sound =」方法?或者這個任務如何工作?如果不是,實際發生了什麼? 我知道,對於setter方法,你會說x.sound =(「bang」)。並且您在參數「bang」的對象「x」上調用方法「sound =」。並且你正在創建一個實例

    0熱度

    2回答

    class​ BookInStock attr_reader :isbn, :price ​def​ initialize(isbn, price) @isbn = isbn @price = Float(price) ​end​ 「這是我們第一次在本章中使用符號。正如我們所討論的,符號只是引用名稱的一種便捷方式。在這段代碼中,你可以想到:is

    5熱度

    2回答

    我見過的每個attr_accessor的例子都使用一個符號(:var)作爲變量。 這是使用attr_accessor的要求嗎?如果是這樣,爲什麼?如果沒有,爲什麼這是一個普遍的做法?

    0熱度

    1回答

    我有一個公寓類叫做籤的attr_accessor(不需要在DB被保存) class Apartment < ActiveRecord::Base attr_accessible :checkin attr_accessor :checkin has_many :rooms has_many :beds through: rooms end 在我的控制

    1熱度

    1回答

    我希望能夠動態地添加到時候有在 attr_accessor 這改寫的屬性我目前有數據庫中沒有對應的屬性: def method_missing(method, arg) self.class.attr_accessor.send(method) || super end 我也嘗試加載變量到單例類,但是這給了我一個0爲1參數錯誤。