0

我在我的房屋模型中添加了一个has_many :through关联(连接表),因此房屋可以有多个类别,例如“lastminute”、“house with pool”等。

我做了一个自定义查询,所以举个例子,我想要“最后一分钟”类别中的所有房子 (5)

@lastminutes = House.find(:all, :select=>"houses.*", :joins=>"JOIN category_join_tables ON houses.id = category_join_tables.house_id", :conditions=>["category_join_tables.house_id = houses.id AND category_join_tables.category_id = ?", 5])

这在控制台中工作正常。

在我的网站上实现此功能的最佳方法是什么。我想要这样的 url 结构:

domain.com/locale/holidayhouses/lastminutes (house in the lastminute category)
domain.com/locale/holidayhouses/holidayhouses_with_pool (houses in the pool category)

domain.com/locale/lastminutes (houses and appartments in the lastminute category)

任何帮助都会很棒!

4

1 回答 1

1

这很容易:

配置/路由.rb:

match 'search/*categories' => "controller#action"

在您的操作中,您现在将类别作为一个数组,只需将它们解析到查询中。我猜您需要“搜索”,因为否则 rails 会将每个正常请求作为类别并将您重定向到操作。

请参阅如何在 Rails 路由中嵌入多个标签,例如 Stack Overflow


对于 l18n 部分,您可以这样做

scope "/:locale" do
  # move all the other routes in here to work with the locale
end

查看I18N 上的导轨指南

于 2012-04-16T15:04:42.330 回答