Rails 中的模型子类使用不同的路线但使用相同的控制器
我有一个模型属性,它具有使用 STI 的子类,
并且我希望所有人都使用相同的控制器,并且根据子类仅具有不同的视图部分。
Property
Restaurant < Property
Landmark < Property
它可以找到,但我不确定如何辨别控制器内的子类以呈现正确的视图。 IE。 /restaurants 工作并转到属性控制器,但我不知道他们想要 Restaurant 子类?
map.resources :restaurant, :controller => :properties
map.resources :properties
I have a Model Property which has subclasses using STI,
and which I would like all to use the same controller with only different view partials depending on the subclass.
Property
Restaurant < Property
Landmark < Property
It works find except I'm not sure how to discern the subclass inside the controller to render the correct view. Ie. /restaurants works and goes to the properties controller but I can't tell that they want the Restaurant subclass?
map.resources :restaurant, :controller => :properties
map.resources :properties
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决该问题的一个简单方法是创建一个子控制器:
在路由中,您将餐厅映射到餐厅控制器。
更新: 或者,您可以在
routes.rb
中尝试类似的操作:然后您可以使用 before 过滤器来检查 params[:what] 并相应地更改行为。
例子:
A simple way to fi the problem would be to create a Sub-Controller:
In the routes you would map restaurants to the restaurants controller.
Update: Alternatively you could try something like this in your
routes.rb
:Then you can use a before filter to check params[:what] and change behaviour accordingly.
Example: