Как отобразить представление «Controller» «B», когда я нахожусь в «A» контроллера? - PullRequest
1 голос
/ 11 сентября 2011

Я хотел бы сделать show действие user с другого контроллера vanity.

Вот как выглядит мой Vanity контроллер:

class VanitiesController < ApplicationController

  def show
    if(v = Vanity.find_by_name(params[:vname]))
        redirect v.vain 
    else
      # If the vanity name can't be found, render a 404
      respond_to do |f|
        f.html { render :status => :not_found, :file => File.join(Rails.root, "public", "404.html") }
        f.xml  { head :not_found }
        f.any  { head :not_found }
      end
    end    
  end
end

Как есть, это делает перенаправление на /users/:id/. Однако вместо перенаправления я хочу отрисовать это действие show.

Когда я просто делаю render v.vain, я получаю это сообщение:

Template is missing

Missing partial users/user with {:handlers=>[:erb, :builder, :coffee], :formats=>[:html], :locale=>[:en, :en]}. Searched in: * "/app/views"

Я также попытался render :controller => :users, :action => :show, и это просто отобразило действие :show для моего vanities контроллера.

Ответы [ 3 ]

3 голосов
/ 11 сентября 2011
render "/controller/action" 

делает трюк

1 голос
/ 14 сентября 2011

используйте это

 render :template => "b/show"
0 голосов
/ 11 сентября 2011

Вы также можете использовать

redirect_to: controller => '',: action => ''

с параметрами: redirect_to: controller => '',: action => '',: parameter => @ variable

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