我是rails的新手,而MVC则更多。所以我有一个名为Bet的模型,它有属性:id,odd,description,outcome。我想编写方法set_won
,将结果更改为1
和set_lost
,这会将结果更改为0
。
我不太确定在模型或控制器中实现这些方法的位置?
答案 0 :(得分:3)
我建议您考虑使用枚举,将结果属性的值设置为"无","赢得"或"丢失"
enum将为您提供getter和setter方法,以及列出所有赢或输的赌注的范围。
http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html
答案 1 :(得分:2)
您应该在模型中写下它。
在你的控制器中你会调用一个动作“BetController#update”或者你想要的任何东西,然后做这样的事情:
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
答案 2 :(得分:0)
您可以在Model中编写此代码,因为它特定于在Bet Model中设置属性。另外,正如Rails所说的“Fat Model Skinny Controller”,模型会更合适。