Рендеринг действия в другом контроллере - PullRequest
5 голосов
/ 03 января 2011

(Rails 2.3.5)

У меня есть два каркаса: Директории и пользователи

Для действия по отображению каталога (скажем, Show action: "\ directoryies \ 2") я взялПользователь \ Новая форма и сделал ее частичной, чтобы пользователь мог добавлять пользователей в каталог.Что я не могу понять, так это как в действии создания я могу вернуться к «\ directoryies \ 2 \ show», если есть какие-либо ошибки проверки.Возвращаясь, если User.save успешно работает, я просто не могу понять, как отформатировать действие Render, чтобы вернуться в каталог и отобразить сообщения об ошибках и поля в партиале New User.

Это работает отличноесли сохранение выполнено успешно, то сработает то же самое, если возникнет ошибка, за исключением того, что error_messages не будут отображаться (я знаю, что сообщения об ошибках должны передаваться только при визуализации, а не при перенаправлении, но я не могу понятьсинтаксис, используемый для действия рендеринга, когда задействован параметр id):

format.html { redirect_to directory_path(@user.directory_id) }

Действие создания пользователя, вызываемое частичным образом в Direcory Показать действие: def create @user = User.new (params [: user])

    respond_to do |format|
      if @user.save
        flash[:notice] = 'User ' + @user.name+ ' was  successfully created.'
        format.html { redirect_to directory_path(@user.directory_id) }
        format.xml  { render :xml => @user, :status => :created, :location => @user }
      else
        # what to do here to successfully return to 'directories\show\(@user.directory_id)'
        # and what to do here that successfully passed the error_messages
      end
    end
  end

Спасибо за любую помощь - надеюсь, это имеет смысл

1 Ответ

9 голосов
/ 04 января 2011

Чтобы отобразить действие с другого контроллера, вам нужно указать шаблон, который вы хотите отобразить.

render :template => 'other_controller/view_template_name'

PS: имейте в виду, что вам придется определять любые переменные экземпляра, которые определяет другое действие контроллера, которые необходимы для отображения представления, потому что отображение шаблона не вызовет функцию другого контроллера перед отображением представления.

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