我正在学习一些基本的rails,并且发现难以理解代码。
我有这个方法
def mymethod
cup = Cup.find_by_id(current_cup.id)
result, log = cup.parse(mug.bought_date)
end
我对上面的代码有两个问题
杯子正在使用基于id的值和当前杯子id的参数。但是我迷失了结果,登录因为我找不到结果,记录“google中的rails功能(或者我想念它)。或者它可能是一个定义的函数? 第二个问题是,在mysql表中,我找不到任何“解析”列。如果杯行中没有“解析”列,怎么调用cup.parse呢?它是一个定义的函数吗?编码员,如果是的话,我怎样才能发挥这种功能呢?
对不起这个超级基本问题,但我试着阅读并找不到正确的解释。但我相信直接从专家那里学习可以帮助我找到正确的道路。
非常感谢
答案 0 :(得分:1)
Cup
模型必须有一个名为parse
的方法。查看app/models/cup.rb
,您应该看到def parse
。 Rails模型将数据库列公开为方法,是的,但您也可以添加根本不对应于数据库的方法。这是因为模型类只是像任何其他ruby类一样的ruby类。
第二部分让你困惑,称为解构分配。 cup.parse
返回一个包含2个元素的数组。您可以使用该语法从返回的数组中提取值并将其分配给局部变量。例如:
var1, var2, var3 = [:a, :b, :c]
puts var1 #=> a
puts var2 #=> b
puts var3 #=> c
此模式允许方法返回多个值,然后很容易将其分配给局部变量。