ruby-on-rails - Ruby 方法似乎没有返回值

标签 ruby-on-rails ruby

我是 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 importanturgent 到控制台并且他们有值(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/

相关文章:

ruby-on-rails - 如何删除 Rails 公用文件夹中的特定文件?

ruby-on-rails - 在轮询器中异步运行代码

ruby-on-rails - 在 Rails 中设置用户和赏金之间的关联

ruby-on-rails - 如何在 attr_encrypted 数据库字段上添加索引?

ruby-on-rails - 何时将代码放入 application_controller.rb

sql - 如何在 :conditions argument to ActiveRecord. 查找中使用 %?

ruby - 是否可以在 Ruby 中的每一行之后运行代码?

ruby-on-rails - 将代码从 Ruby 1.8 移至 1.9

ruby - 如何在 Ubuntu 中将 libxml 2.7.8 降级到 2.7.6

ruby-on-rails - VBA Heroku 集成?