新手问题在rails中调用字段(活动记录)的基本语法

时间:2011-02-21 10:38:30

标签: ruby-on-rails

我正在学习一些基本的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呢?它是一个定义的函数吗?编码员,如果是的话,我怎样才能发挥这种功能呢?

对不起这个超级基本问题,但我试着阅读并找不到正确的解释。但我相信直接从专家那里学习可以帮助我找到正确的道路。

非常感谢

1 个答案:

答案 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

此模式允许方法返回多个值,然后很容易将其分配给局部变量。