2017-08-06 44 views
0

在routes.rb中我有沒有路由的比賽,但我使用資源的routes.rb

Rails.application.routes.draw do 

    get 'password_resets/new' 

    get 'password_resets/edit' 
    get 'sessions/new' 
    get 'account_activation/edit' 

    root      'static_pages#home' 
    get  'help' => 'static_pages#help' 
    get  'sign_up' => 'user#new' 
    get  'login' => 'sessions#new' 
    post  'login' => 'sessions#create' 
    delete 'logout' => 'sessions#destroy' 
    post  'sign_up', to: 'user#create' 
    resources :user 
    resources :account_activation, only: [:edit] 
    resources :password_resets, only: [:new, :create, :edit, :update] 
    resources :purchases, only: [:create, :destroy] 
    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
end 

我user_controller

class UserController < ApplicationController 

    before_action :logged_in_user, only: [:show, :edit, :update] 
    before_action :correct_user, only: [:show, :edit, :update] 


    def show 
    @user = User.find_by(id: params[:id]) 
    @purchases = @user.purchases.paginate(page: params[:page]) 
    @purchase = current_user.purchases.build 
    end 

    def index 
    if logged_in? 
     redirect_to root_url 
    else 
     redirect_to sign_up_path 
    end 
    end 

    def new 
    @user = User.new 
    end 

    def create 
    @user = User.new(user_params) 
    if @user.save 
     @user.send_account_activation_email 
     flash[:info] = 'check' 
     redirect_to root_url(@user) 
    else 
     render 'new' 
    end 
    end 

    def edit 
    end 

    def chart 
    end 

    def update 
    if @user.update_attributes(user_params) 
     flash[:success] = 'updated' 
     redirect_to @user 
    else 
     render 'edit' 
    end 
    end 

    private 
    def user_params 
     params.require(:user).permit(:name, :email, :password, :password_confirmation) 
    end 

    def correct_user 
     @user = User.find_by(id: params[:id]) 
     redirect_to(root_url) unless current_user?(@user) 
    end 
end 

定義兩者有一個觀點,但是當我鍵入localhost: 300 /用戶/(ID)/圖瀏覽器的軌道告訴我沒有發現路由匹配,但是用戶/(ID)/編輯工作

當我使用耙路線 圖表做路線

不顯示

我看到MHartl ruby​​onrails教程屏幕劇照 他這樣做都是這樣的 問題在哪裏?

+0

i的控制器定義的圖表編輯後befor更新 –

+0

否路線匹配[GET]「/ user/6/chart」 –

回答

2
resources :user do 
    member do 
    get :chart 
    end 
end 

定義圖表動作那樣 在導軌引導讀routes並檢查membercollection

resources :user只創建7缺省路由檢查2.2 http://guides.rubyonrails.org/routing.html

+0

它對我來說很有用 –