Rails 3: Показать 1 случайный элемент из базы данных: Question_Edit: more_detailed - PullRequest
0 голосов
/ 03 февраля 2011

Редактировать: более подробно и точно

Я использую Rails 3:

В настоящее время у меня есть список элементов, которые извлекаются из моей базы данных и отображаются на странице свойств / индекса, где люди могут просмотреть основную информацию и затем щелкнуть ее ссылку, чтобы перейти на страницу свойств / отображения. код, который я использую для вызова этого

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

link_to_rental (свойство) определяется в помощнике по свойствам

То, что я хотел бы сделать, это добавить свойство на мою домашнюю страницу / страницу индекса. Есть ли способ использовать нечто подобное, которое случайным образом извлекает одно свойство из контроллера свойств и отображает его .title на странице home / index?

примечание: ранд устарел в рельсах 3 должен использовать random_element

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Лучше всего поставить логику в свой контроллер:

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

Тогда вид:

<%= link_to @randitem.name_of_item, link_to_item(@randitem) %>
0 голосов
/ 03 февраля 2011

В домашнем контроллере похоже, что мне нужно было сначала добавить массив для свойств, а затем создать массив для рандомизации списка свойств.например:

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)  %>
...