0

我在其他目录(admin/)中有一些操作,但我如何重定向到 vin_questions 路径,它位于管理控制器中?现在它给了我错误

Template is missing

我的代码

def create
    @va = VinAnswer.new(params[:vin_answer])
    @va.vin_question_id  = params[:vin_question_id]
    @va.save
    render :layout => 'admin'
    redirect_to  admin_vin_questions_path
  end

和部分路线(耙路线)

 admin_vin_questions GET    /admin/vin_questions(.:format)                                            admin/vin_questions#index
                                POST   /admin/vin_questions(.:format)                                            admin/vin_questions#create
         new_admin_vin_question GET    /admin/vin_questions/new(.:format)                                        admin/vin_questions#new
        edit_admin_vin_question GET    /admin/vin_questions/:id/edit(.:format)                                   admin/vin_questions#edit
             admin_vin_question GET    /admin/vin_questions/:id(.:format)                                        admin/vin_questions#show
                                PUT    /admin/vin_questions/:id(.:format)                                        admin/vin_questions#update
                                DELETE /admin/vin_questions/:id(.:format)                                        admin/vin_questions#destroy

但怎么了?如何重定向到/admin/vin_questions?

更新

Template is missing

Missing template admin/vin_answers/create, application/create with {:locale=>[:ru], :formats=>[:html], :handlers=>[:erb, :builder, :coffee, :haml]}. Searched in: * "/media/_Projects/Oleg/app/views" * "/home/pavel/.rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.14.1/app/views" * "/home/pavel/.rvm/gems/ruby-1.9.3-p194/gems/devise-2.1.2/app/views"
4

2 回答 2

0

我会在控制器中做这样的事情

class YourController < ApplicationController

layout :resolve_layout

your actions

private

def resolve_layout
  case action_name
  when "index"
    "layoutxxx"
  when "show"
    "layoutzzz"
  when "create"
       "admin"
  else
    "application"
  end
end

并从您的创建控制器中删除此行

render :layout => 'admin'
于 2012-12-12T22:22:38.837 回答
0

尝试:

def create
  @va = VinAnswer.new(params[:vin_answer])
  @va.vin_question_id  = params[:vin_question_id]
  if @va.save
    redirect_to  admin_vin_questions_path # redirect if saved.
  else
    render :layout => 'admin'  # stay here.
  end
end

如果没有,则在 vin_questions 控制器中设置布局。

于 2012-12-12T22:25:37.213 回答