我是新的在軌道和更多的MVC。所以我有一個叫做Bet的模型,它有屬性:id,odd,description,outcome。我想寫方法set_won
會改變結局1
和set_lost
會改變結局0
。哪裏可以在模型或控制器中編寫此方法?
我不太知道從哪裏實現模型或控制器的這些方法?
我是新的在軌道和更多的MVC。所以我有一個叫做Bet的模型,它有屬性:id,odd,description,outcome。我想寫方法set_won
會改變結局1
和set_lost
會改變結局0
。哪裏可以在模型或控制器中編寫此方法?
我不太知道從哪裏實現模型或控制器的這些方法?
我建議你考慮使用一個枚舉這一點,因此你對你的結果的屬性爲「無」,「元」或「迷失」的一個設定值。
枚舉將爲您提供getter和setter方法和範圍的列出所有贏或輸的賭注。
http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html
,因爲它是特定於投注模式設置一個屬性你可以寫在模型驗證碼。同樣Rails有說「胖模型瘦身控制器」,模型會更合適。
你應該把它寫在模型中。
在你的控制器,你會打電話給一個動作「BetController#更新」或任何你想,那麼做這樣的事情:
class BetController < ApplicationController
...
def update
#do somestuff
@bet.set_won or @bet.set_lost
end
-------
class Bet < ActiveRecord::Base
#some stuff up here
def set_won
self.outcome = 1
end
def set_lost
self.outcome = 0
end
end
爲什麼我需要寫self.outcome?我可以寫結果= 1等嗎? @Menelik塔克 – user3662708
是的,你可以寫'結果= 1',都聲明在這種情況下等價的。 –