Rails路由具有每天指向不同模型对象的url

时间:2014-09-22 20:58:16

标签: ruby-on-rails rails-routing

所以我试图做一些事情,如果我去/daily_products那么它会 显示新产品页面,用户可以在此每天提交新评论。

目前我有product/:id/review/newreview#new的映射。我想知道我是否可以像/daily_products一样映射到product/:id/review/new/:id每天都不同。有谁知道如何在Rails路由中做到这一点?

1 个答案:

答案 0 :(得分: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

请注意,这将为每个用户提供随机产品。所有用户都没有任何类型的日常产品缓存。你可以轻松地做到这一点。这个想法是在模型中隔离每日概念,而不是在路线中。