我已经做过我的研究,但我想我不知道怎么问,所以我会试着解释一下...... 我正在寻找一种方法来要求保存在脚手架上的第一个条目...... 喜欢 如果我在表中有产品:
我在我的模型或我的视图@first_prod = Products.first
(或类似的东西)中写<%= Products.each.first %>
(或类似的东西)Rails给了我这个案例中的第一个产品 - 更甜... < / p>
提前致谢...
答案 0 :(得分:1)
在rails中,您可以定义一些从模型中获取内容的默认方法。
在你的情况下,我会创建一个范围。
在模型中输入以下内容:
scope ordered, :order => "Product.created_at ASC"
致电时
Product.ordered
它会在创建时返回所有订购的产品。 如果您想要第一个产品,那么
Product.ordered.first
如果您只想在一个特定的地方获得该项目,您可以执行以下操作(而不是我上面提到的那样)
Product.find(:first,:order =&gt;'created_at ASC')
如果我的解释不明确,请告诉我,我会尝试重新
答案 1 :(得分:0)
好。我们假设当您致电Product.all
时,它会按照您在上面指定的顺序返回产品。因此,要获得Sweeter,您可以致电Product.all.first
。或者,如果您在控制器中完成了@products = Product.all
,并且在视图中想要它,则可以使用@products.first
。或者,如果您正在循环使用它们并想要对第一个执行特殊操作,则可以执行此操作:
<% @products.each_with_index do |product, i| %>
<% if id == 0 %>
do something special as this is the first product
<% end %>
<% end %>
答案 2 :(得分:0)
你回答了自己的问题,我想......
如果您知道要访问特定型号的第一个已保存项目,则只需拨打Product.first
即可。因此,在您要访问该数据的视图的控制器操作中,只需键入@product = Product.first
...例如
def index
@products = Product.all
@product = Product.first
end
这样您就可以访问第一个保存的产品,并可以访问索引视图代码中的整个集合。