Rails 3:从数据库中显示1个随机项:Question_Edit:more_detailed

时间:2011-02-03 08:10:18

标签: database ruby-on-rails-3 random random-access

编辑:更详细,更直观

我正在使用Rails 3:

我目前有一个项目列表,这些项目从我的数据库中提取并显示在属性/索引页面上,人们可以在其中查看基本信息,然后单击其链接转到属性/显示页面。我用来调用它的代码是

<% @properties.each do |property| %>
<%= link_to property.title,  link_to_rental(property)  %>
<% end %>

link_to_rental(property)在Properties Helper

中定义

我想做的是,在我的主页/索引页面上有一个特色属性。有没有办法使用类似的东西从属性控制器中随机抽取一个属性并在主页/索引页面上显示其.title?

注意:rand在rails 3中已弃用,必须使用random_element

2 个答案:

答案 0 :(得分:1)

最好将逻辑放在控制器中:

@randitem = @items[rand(items.count)]

然后是观点:

<%= link_to @randitem.name_of_item, link_to_item(@randitem) %>

答案 1 :(得分:0)

在家庭控制器中,我看起来需要首先为属性添加数组,然后创建数组以随机化属性列表。例如:

properties = Property.joins(:status).where(:statuses => { :available => 'Not-Rented'})
@property = properties[rand(properties.count)]

  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @properties }
  end

让我们在家庭/索引视图中使用它:

<%= link_to @property.title,  link_to_rental(@property)  %>