0

我正在阅读一本使用 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

究竟是什么“第一”添加到这个方法。例如,它是在搜索第一个使用昵称作为参数传入的用户:recipient?换句话说,它是否等同于“查找”?

我应该补充一点,这也让我感到困惑,因为昵称应该是唯一的,所以如果它确实在做的话,它没有理由需要搜索“第一个”。

更新

作者正在为 ORM 使用 DataMapper

4

1 回答 1

1

好的,'first' 是一个'finds' 的数据映射器方法。从文档

zoo  = Zoo.first(:name => 'Metro')    # first matching record with the name 'Metro'
于 2012-09-07T03:46:33.123 回答