cod*_*be2 2 ruby model-view-controller activerecord ruby-on-rails ruby-on-rails-4
我想在我的主页上显示我的数据库中随机分类的6个工具.我创建了一个带有主页操作的Pages控制器.
这是我的Pages控制器:
class PagesController < ApplicationController
def home
@tools = Tool.all
end
end
Run Code Online (Sandbox Code Playgroud)
然后在我的home.html.erb视图中,我使用.sample方法从我的数据库中抓取随机工具(我使用tool1,tool2,tool3等为每个变量重复6次):
<% tool1 = @tools.sample %>
<%= image_tag tool1.tool_image.url(:medium) %>
<%= tool1.name %>
<%= tool1.description %>
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来做到这一点.在我看来,我似乎有逻辑,必须有办法将逻辑转移到其他地方?我的模型,控制器等等.如何清理这些代码,以便它是好的rails代码?或许这是很好的rails代码,我只是不知道它,因为我是一个初学者.
你的控制器不需要从中提取所有东西tools_table,所以我先删除它.all.您的示例使您看起来只需要数据库中的6个随机对象,这是一种方法:
class PagesController < ApplicationController
def home
@tools = Tool.order("RANDOM()").first(6)
end
end
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中,您可以循环遍历这些:
<% @tools.each do |tool| %>
<%= image_tag tool.tool_image.url(:medium) %>
<%= tool.name %>
<%= tool.description %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |