перенаправить на конкретный вид из контроллера метода - PullRequest
3 голосов
/ 22 сентября 2011

У меня есть контроллер с именем "products_controllers.rb", который имеет этот метод:

def create
  ...
  ...
  respond_to do |format|
    if @product.save
     ???????
    else
      format.html { render :action => "new" }
      format.xml  { render :xml => @product.errors, :status => :unprocessable_entity }
    end
end

Всякий раз, когда продукт сохраняется, я хочу перенаправить его в конкретное представление, называемое «поставщиками», которое относится к представлениям продукта, как я могу это сделать? Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 22 сентября 2011

Если вы используете спокойные маршруты и существует связь, когда у продукта много поставщиков, вы можете использовать:

format.html { redirect_to product_suppliers_url(@product) }

с чем-то вроде этого в ваших маршрутах.rb:

map.resource :products do |product|
  product.resource :suppliers
end

или вы также можете просто использовать это:

format.html { redirect_to :action => 'suppliers', :id => @product.id }
0 голосов
/ 22 сентября 2011

В вашем контроллере:

def create
  ...
  ...
  respond_to do |format|
    if @product.save
     ???????
    else
      format.html { render :action => "suppliers" }
      format.xml  { render :xml => @product.errors, :status => :unprocessable_entity }
    end
end

def suppliers
  #Your suppliers code goes here
end

В маршрутах.рб

resources :venues do
  member do
    get 'suppliers'
  end
end
0 голосов
/ 22 сентября 2011

Что-то вроде redirect_to 'product/suppliers'

Источник: http://guides.rubyonrails.org/layouts_and_rendering.html#using-redirect_to

Комментарий: в следующий раз обязательно укажите "в рельсах" в тексте вашего вопроса, поскольку представления и контроллеры используютсямного рамок.

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