Ruby on rails 在模型或控制器中的何处写入此方法?
我对rails和MVC都是新手。所以我有一个叫做Bet的模型,它有属性:id,odd,description,output。我想编写方法Ruby on rails 在模型或控制器中的何处写入此方法?,ruby-on-rails,ruby,ruby-on-rails-4,model-view-controller,activerecord,Ruby On Rails,Ruby,Ruby On Rails 4,Model View Controller,Activerecord,我对rails和MVC都是新手。所以我有一个叫做Bet的模型,它有属性:id,odd,description,output。我想编写方法set\u-won,将结果更改为1,并set\u-lost将结果更改为0 我不太确定在模型或控制器中的何处实现这些方法?您可以在模型中编写此代码,因为它特定于在Bet模型中设置属性。另外,正如Rails所说的“胖模型瘦控制器”,模型更合适。您可以在模型中编写此代码,因为它特定于在Bet模型中设置属性。另外,正如Rails所说的“胖模型瘦控制器”,模型更合适。我建
set\u-won
,将结果更改为1
,并set\u-lost
将结果更改为0
我不太确定在模型或控制器中的何处实现这些方法?您可以在模型中编写此代码,因为它特定于在Bet模型中设置属性。另外,正如Rails所说的“胖模型瘦控制器”,模型更合适。您可以在模型中编写此代码,因为它特定于在Bet模型中设置属性。另外,正如Rails所说的“胖模型瘦控制器”,模型更合适。我建议您考虑为此使用枚举,即将结果属性的值设置为“无”、“赢”或“输”之一 枚举将为您提供getter和setter方法,以及列出所有赢注或输注的范围
我建议您考虑为此使用枚举,在结果属性上设置值为“无”、“赢”或“输” 枚举将为您提供getter和setter方法,以及列出所有赢注或输注的范围
你应该把它写在模型上 在控制器中,您可以调用操作“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
class BetController
您应该将其写入模型中
在控制器中,您可以调用操作“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
class BetController
为什么我需要编写self.output?我可以只写结果=1,依此类推吗@Menelik Tuckryes您可以编写output=1
,在这种情况下,这两个语句是等效的。为什么我需要编写self.output?我可以只写结果=1,依此类推吗@Menelik Tuckryes您可以编写output=1
,在这种情况下,这两个语句是等效的。