我是 Ruby(和 Rails)的新手,我试图从 View 文件中获取表单数据并在 Controller 中计算一些东西,但该方法似乎没有返回任何值。我有一种感觉,这是我忽略的非常简单的事情。
这是在 def create
中:
def calcQuadrant
important = params[:task][:important] # INT of 0 or 1
urgent = params[:task][:urgent] # INT of 0 or 1
if important == 1 && urgent == 1
return 1
elsif important == 1 && urgent == 0
return 2
elsif important == 0 && urgent == 1
return 3
elsif important == 0 && urgent == 0
return 4
end
end
calcQuadrant
似乎没有返回任何东西,即使我 put
important
或 urgent
到控制台并且他们有值(value)观。我最终尝试将 calcQuadrant
返回的值分配给一个新参数:params[:task][:quadrant]
。
在高层次上,我真正想弄清楚的是将参数传递给模型的最佳方式,而该参数没有从 View 传递给 Controller 。最好的方法是在 Controller 中为该参数分配一个值吗?例如,我询问用户“待办事项”以及待办事项是否“重要”和/或“紧急”。根据他们的选择,我计算出任务进入的象限。而不是在数据库中保存待办事项的重要性和紧迫性,我只想保存象限。
最佳答案
可能 params[:task][:important]
和 params[:task][:urgent]
是字符串而不是整数。检查这个。
我试过了,结果是预期的 2。
def calcQuadrant
important = 1
urgent = 0
if important == 1 && urgent == 1
1
elsif important == 1 && urgent == 0
2
elsif important == 0 && urgent == 1
3
elsif important == 0 && urgent == 0
4
end
end
关于ruby-on-rails - Ruby 方法似乎没有返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41074467/