我有几个视图,控制器操作如下所示:
def active
@posts = current_user.posts
respond_to do |format|
format.html{ render :template => "posts/list" }
format.js { render :template => "posts/list.js" }
end
end
我总是希望在PostsController中为很多动作渲染这些模板。
我不知道如何继续。
我正在寻找类似的东西:
class PostsController
respond_to :html, :js
def active
@posts = current_user.posts
#respond with the appropriate template (posts/list.html.erb or (posts/list.js.erb):
respond_with(....what goes here...??)
end
end
答案 0 :(得分:0)
我认为你这是错误的做法。你要做的第一件事就是坚持使用RESTful资源。因此,请在active
控制器上删除Posts
方法。相反,将Post
资源嵌套在User
下。所以在您的路线中这样做
resources :users do
resources :posts
end
这将为您提供与此/users/:user_id/posts
类似的路线,您可以使用user_posts
然后为html,js等创建适当的视图。您将找到所需的所有信息here
希望这能让你指出正确的方向。