以下尝试似乎是有效的,但不是我试图归档的“干净”结果。
跟随路线
get "/learn(/:category)", to: "users#index", as: "learn"
应该可用于“/learn/technology”之类的东西- 如果在地址栏中手动输入,它会起作用。
如果我在我的观点中努力实现类似的目标,我会得到以下信息:“/learn?category=technology” - 这在技术上是可行的,但不是我想要的。
我在我的视图中使用以下内容:
- Category.promoted.limit(7).each do |category|
%li.category-button
= link_to learn_path(category) do
= button_tag "", :class => "#{category.name}"
= content_tag(:span, category.to_s, :class => 'category-head')
我的类别模型如下所示:
class Category < ActiveRecord::Base
has_many :skills
validates_uniqueness_of :name
scope :promoted, lambda { where(:promoted => true) }
def to_s
read_attribute(:name).titleize
end
def to_param
name.parameterize
end
end
我将如何实现“更清洁”的解决方案?
编辑:
以下作品 - 但必须有比这更好的解决方案吗?
get "/learn", to: "users#index", as: "learn"
get "/learn/:category", to: "users#index", as: "filter_learn"