2014-03-30 47 views
0

我用脚手架创建了一个应用程序,用户可以在其中创建字母(新手)。路由错误未初始化的常量 - 如何编辑脚手架路由?

当检讨信创造增加一个额外的视图(“应用程序/视图/字母/ review.html.erb”)我遇到路由问题尝试通过我认为的路径重定向

redirect_to review_path, notice: 'Letter was successfully created.' 

现在应该工作:

match '/review', to: 'letter#review',  via: 'get' 

我做错了什么?

全部成立,控制器:

class LettersController < ApplicationController 
    before_action :set_letter, only: [:show, :edit, :update, :destroy, :review] 

    def review 
    end 

... 

    def create 
    @letter = Letter.new(letter_params) 
    @letter.user_id = current_user.id if current_user 

    respond_to do |format| 
     if @letter.save 
     format.html { redirect_to review_path, notice: 'Letter was successfully created.' } 
     format.json { render action: 'show', status: :created, location: dashboard_path } 
     else 
     format.html { render action: 'new' } 
     format.json { render json: @letter.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

路线:

Appname::Application.routes.draw do 
    resources :letters 
    resources :charges 

    devise_for :users 

    get 'letter/new' 
    root 'static_pages#home' 
    match '/review', to: 'letter#review',  via: 'get' 
    match '/dashboard', to: 'account#dashboard', via: 'get' 
    match '/order',  to: 'account#order',  via: 'get' 

回答

0

更新如下路线:

match '/review', to: 'letters#review',  via: 'get' 

你的控制器名称为LettersController,注意多letters。因此,在定义路线时,您需要指定复数letters

你得到uninitialized constant error因为同时你用letter(单数),所以Rails的路由器开始寻找LetterController不存在审查航线指定控制器。因此,你会得到错误。

+0

Lifesaver,感谢您的阐述。 –

+0

很高兴帮助:) –

相关问题