2014-09-22 3 views
0

Так что я пытался что-то сделать, если я перейду к /daily_products, тогда он будет показать новую страницу продукта, где пользователь может оставлять новый отзыв каждый день.Rails route, который имеет URL-адрес, который указывает на другой объект модели каждый день

В настоящее время у меня есть карта product/:id/review/new по review#new. Мне было интересно, могу ли я что-то вроде /daily_products, чтобы карта product/:id/review/new/ с :id отличалась каждый день. Кто-нибудь знает, как это сделать в Rails-маршруте?

ответ

2

Я хотел бы предложить другой подход:

В ваших маршрутов файл:

get 'daily_products', to: 'products#daily' 

И в ваших продуктов контроллер вы могли бы иметь действие ежедневно, как:

def daily 
    @daily_product = Product.daily 
    render '/review/new/' # I am not sure where you have the actual review template... 
end 

Затем в вашем Модель продукта , вы определяете суточный объем по своему вкусу. Например, выбор случайного Продукта каждый день:

def self.daily 
    if (c = count) != 0 
    find(:first, :offset =>rand(c)) 
    end 
end 

Обратите внимание, что это даст случайный Продукт для каждого Пользователя. Существует не какой-либо кэш того, что является ежедневным продуктом для всех пользователей. Вы можете легко это сделать. Идея состоит в том, чтобы изолировать понятие ежедневного в Модели, а не в маршрутах.