所以当我在服务器rails控制台中写这个时:
irb(main):001:0> Member.all do |member|
irb(main):002:1* member.identify
irb(main):003:1> end
它不运行识别功能,它只返回:
Member Load (1.7ms) SELECT "members".* FROM "members" ORDER BY members.created_at DESC
...
我的语法明智吗?如何在服务器控制台中运行多行代码?
答案 0 :(得分:0)
您应该尝试使用rails控制台(在app目录中):
rails c
或
rails console
你可以使用多线工作。
答案 1 :(得分:0)
如果要将.identify
SQL函数应用于Member
,您不需要使用do
和end
的多行语句,您只需编写:
Member.identify
Member.all
将返回与查询一起使用的对象数组。您通常不需要迭代它们,因为编写一个可以自动为您提供所需内容的单独查询更有意义。您可以在模型中放置一个单独的函数(类方法或范围),以便为您提供所需的结果。
即:
会员模特:
self.some_method
where(":member_name => "Jack")
end
从此处您可以通过编写@member = Member.some_method
对于将来,如果要迭代集合中的每个元素(数组,散列),则需要将对象/类链接到迭代器(例如每个或映射)。迭代器基本上是一个方法,它将遍历集合的每个元素,并将某些方法/操作应用于集合中的每个项目:
即:
some object = [1,2,3]
some_object.each do |x|
puts x
#will go over each element in array and print it
end