Как использовать `response_to` и` response_with` для нескольких действий? - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть несколько представлений, и действия контроллера выглядят так:

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.

IЯ в растерянности, как действовать.

Я ищу что-то вроде:

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

1 Ответ

0 голосов
/ 23 февраля 2011

Я думаю, вы поступаете неправильно.Первое, что вы должны сделать, это использовать ресурсы RESTful.Так что избавьтесь от вашего active метода на вашем Posts контроллере.Вместо этого вложите ресурс Post под свой User.Так что сделайте это в ваших маршрутах

resources :users do
    resources :posts
end

Это даст вам маршруты, которые выглядят следующим образом /users/:user_id/posts, и вы можете получить к нему доступ из ваших представлений, используя user_posts

Затем создайте соответствующие представлениядля html, js и т. д. Здесь вы найдете всю необходимую вам информацию здесь

Надеюсь, это поможет вам указать правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...