2013-08-11 1 views
0

Я создал сайт, посвященный событиям, и хотел бы, чтобы рельсы автоматически сортировали эти ссылки (события) по дате и удаляли их по прошествии дня. После обширного чтения я предполагаю, что удаление сообщений, которые прошли, - это задание cron. Я с нетерпением жду любых предложений для этого. Прямо здесь, я пытаюсь перечислить эти события полем datetime в форме. Вот немного кода.Как сделать приложение rails упорядочить сообщения пользователей (события) по дате и удалить прошедшие события?

class LinksController < ApplicationController 
    def show 
    @link = Link.find(params[:id]) 
    @comment = Comment.new 
    end 
    def new 
    authenticate_user! 
    @link = Link.new 
end 
def create 
    @link = Link.new(params[:link]) 

Так в index.html.erb:

<% @links.each do |link| %> 
    <li><%= link_to link.title, link %><br></li> 
<%= link_to "comments", link %> 

И в новом виде ссылки у меня есть:

<div class="field"> 
    <%= f.label :datetime %><br /> 
    <%= f.text_field :datetime %> 
</div> 

Могу ли я просто заменить, что

<% @links.each do |link| %> 

с чем-то вроде

<% @links.where("DATE(datetime) = DATE(?)", DateTime.now) 

Даже очень толкнул в нужном направлении. Хотя, возможно, мне нужен @ links.order_by?

ответ

0

В контроллере вы можете использовать что-то вроде

@links = Link.find(:all, :order => "created_at DESC") 
+0

Да, хотя я не хотел, чтобы сообщения, которые были созданы, были созданы, а не дату и время события. Возможно, вместо «created_at DESC» я мог бы использовать что-то, ссылающееся на атрибут поля datetime. – pipebender

0

ты прав @pipebender. Но лучше, если вы можете поместить код для действия вашего индекса в контроллер.

def index 
    @links = Link.where("DATE(datetime) = DATE(?)", DateTime.now).order('created_at DESC') 
end 
+0

Этот метод генерирует ошибку undefined method 'title 'для nil: NilClass из представления ссылки. Вместо того, чтобы упорядочивать, когда он был создан, у меня есть поле, когда событие происходит, когда я намеревался заказать. – pipebender

Смежные вопросы