Sinatra:User.first方法

时间:2012-09-07 03:24:19

标签: ruby sinatra

我正在读一本用Sinatra制作Twitter克隆的书,以提高我对Ruby的了解。我对作者使用

感到困惑
User.first(:nickname => params[:recipient])

他在整个代码中的几个位置使用,如下例所示。

post '/message/send' do
recipient = User.first(:nickname => params[:recipient])
Status.create(:text => params[:message], :user => User.
get(session[:userid]), :recipient => recipient)
redirect '/messages/sent'
end

添加到此方法的'第一'究竟是什么?例如,它是否正在搜索作为参数传入的昵称的第一个用户:收件人?换句话说,它是否等同于'find'?

我应该补充说,它也让我感到困惑,因为昵称应该是独一无二的,所以没有理由为什么它需要搜索'first',如果它确实是它正在做的那样。

更新

作者正在使用DataMapper进行ORM

1 个答案:

答案 0 :(得分:1)

好的,'first'是一个'找到'的数据映射器方法。来自文档

zoo  = Zoo.first(:name => 'Metro')    # first matching record with the name 'Metro'