我有这样的网址
亚利桑那/ AZ12
科罗拉多州/ CO470
我添加了AZ和CO,因为友好的id需要独特的ID。亚利桑那州和科罗拉多州可能有12个单位。
我想要像
这样的网址亚利桑那/人教版
科罗拉多州/ unit470
好像你可以写一些东西来删除前两个字符并替换它们。那是在路线还是控制器?
我的路线
resources :states, :except => [:index ], :path => '/' do
resources :units, :except => [:index ], :path => '/'
end
我的控制器
def show
@units = Unit.all
@states = State.with_units.group('states.id')
@state = State.all
@unit = Unit.friendly.find(params[:id])
end
答案 0 :(得分:0)
在您的模型上实现to_param方法。 Rails将调用to_param将对象转换为URL的slug。如果你的模型没有定义这个方法,那么它将使用ActiveRecord :: Base中的实现,它只返回id。
class SomeModel
def to_param
"unit#{id}"
end
end