我有一个Post
型号。 Post
可以是一种问题,答案或注释(类似于StackOverflow结构)。目前,控制器正在处理任何类型的Post
对CRUD的请求。有一个约定,控制器需要在Rails中很薄,而且我的控制器似乎不遵循这个,因为在任何操作中都有case语句(Post
类型选择和处理)。所以我的问题是:有没有办法重新组织或(甚至更好)划分Post
控制器以分别处理Question
,Answer
和Comment
,但使用共同{{1观点?任何链接/示例都将不胜感激。
答案 0 :(得分:5)
您可以从另一个控制器继承一个控制器:
一个常见的控制器:
class PostsController < ApplicationController
#here all the methods common for all types, if any
def new
@post = Post.new(:email => current_user.try(:email))
end
...
end
然后在每个控制器中:
class AnswersController < PostsController
self.model_class = Post
# here all specific methods
def create
...
end
end
您可以保留在posts
文件夹中的所有视图,或者与其自己的文件夹不同的视图