Ruby on rails 在Rails的视图中显示来自一个模型的逻辑?
我有一个模型,统计,一个角色模型有6个统计。用户可以输入强度、智能等值。我已经写了一个根据输入的分数自动计算奖金或罚款的方法。根据我的统计模型,以下是体质奖金的逻辑:Ruby on rails 在Rails的视图中显示来自一个模型的逻辑?,ruby-on-rails,logic,models,controllers,Ruby On Rails,Logic,Models,Controllers,我有一个模型,统计,一个角色模型有6个统计。用户可以输入强度、智能等值。我已经写了一个根据输入的分数自动计算奖金或罚款的方法。根据我的统计模型,以下是体质奖金的逻辑: def con_modifier (constitution.to_i - 10) / 2 end 我在我的角色视图中显示从统计模型收集的信息,我想看到奖金,因此我在我的角色模型中的Show方法中定义了奖金,如下所示: @con_modifier = @character.statistic.con_modifier 我可
def con_modifier
(constitution.to_i - 10) / 2
end
我在我的角色视图中显示从统计模型收集的信息,我想看到奖金,因此我在我的角色模型中的Show方法中定义了奖金,如下所示:
@con_modifier = @character.statistic.con_modifier
我可以在角色视图中查看它,没有任何问题。但这是我的问题。我有另一个模型,强韧,它将需要采取这个数字,并使用它来计算强韧保存的总价值。到目前为止,我得到的是:
def total
fortitude_base.to_i + @con_modifier + magic.to_i + misc.to_i
end
但是我得到了这个错误:
nil can't be coerced into Fixnum
所以很明显,它没有调用正确的信息。有什么想法吗?我是否也需要在我的Fortitudes控制器中定义它,或者我可以简单地在Fortitude模型中定义它,并以这种方式在视图中调用它?坚韧在我的角色视图中显示,所以我认为在角色模型中的Show方法中定义这个逻辑很简单,但是我已经针对这个问题苦思冥想了几天,没有任何进展。谢谢 将修饰符作为参数传递:
def total(con_mod)
fortitude_base.to_i + con_mod + magic.to_i + misc.to_i
end
然后在其他地方使用它:
@fortitude = Fortitude.whatever
@saving_throw = @fortitude.total(@character.statistic.con_modifier)
你能发布你的模型和控制器的完整代码吗?这几条信息很难清楚地说明发生了什么。
@con_modifier是一个动作实例变量,在您的模型中不可用。为什么不能直接调用
character.statistic.con_修饰符“?谢谢您的输入。我还没有把我当前的代码推到git上,但我今晚回家后会发布完整的代码。