2014-12-07 62 views
1

我試圖將「localhost:3000/users/1」更改爲「localhost:3000/members/1」。將localhost:3000/users/1更改爲localhost:3000/members/1

我在改變航線向resources :usersresources :members改變users_controller.rbmembers_controller.rb但它似乎沒有工作(我也改變了類class MembersController

我已經試過所有我能想到的都沒有成功。是有一種方法手動定義 「用戶/成員」 路由,而無需使用resources :usersresources :members

routes.rb中:

Template::Application.routes.draw do 

    resources :users 

    resources :sessions, only: [:new, :create, :destroy] 


    get "users/new" 


    root 'static_pages#home' 
    match '/signup', to: 'users#new',   via: 'get' 
    match '/signin', to: 'sessions#new',   via: 'get' 
    match '/signout', to: 'sessions#destroy',  via: 'delete' 
    match '/help',  to: 'static_pages#help', via: 'get' 
    match '/about', to: 'static_pages#about', via: 'get' 
end 

users_controller.rb:

class UsersController < ApplicationController 
    before_action :signed_in_user, only: [:edit, :update] 
    before_action :correct_user, only: [:edit, :update] 



    def edit 
    @user = User.find(params[:id]) 
    end 

    def update 
    @user = User.find(params[:id]) 
    if @user.update_attributes(user_params) 
     # Handle a successful update. 
    else 
     render 'edit' 
    end 
    end 

def show 
    @user = User.find(params[:id]) 
    end 

def new 
    @user = User.new 
end 


    def create 
    @user = User.new(user_params) 
    if @user.save 
     flash[:success] = "Welcome to the Weight Loss Community" 
     redirect_to @user 
    else 
     render 'new' 
    end 
    end 

    private 

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

    def signed_in_user 
    unless signed_in? 
     store_location 
     redirect_to signin_url, notice: "Please sign in." unless signed_in? 
end 

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

用戶/ show.html.erb:

<% provide(:title, @user.name) %> 
<div class="row"> 
    <aside class="span4"> 
    <section> 
     <h1> 
     <%= gravatar_for @user %> 
     <%= @user.name %> 
     </h1> 
    </section> 
    </aside> 
</div> 

任何幫助,將不勝感激。

+1

你應該提供一個錯誤。 – 2014-12-07 23:00:36

+0

您是否已經運行遷移來創建用戶?如果是這樣,你將不得不通過遷移來更改表名,在這種情況下,這將有助於:http://stackoverflow.com/questions/1992019/how-can-i-rename-a-database-column-in -a-rails-migration – 2014-12-07 23:03:00

+0

您是否嘗試使用路由中的':as'或':path'選項?例如:'resources:users,as :: members'或'resources:users,path:'members'' ...類似的東西在我的代碼中,當我正在開發一個Rails 3項目時,但我還沒有現在用一會兒...... – Myst 2014-12-07 23:08:10

回答

相關問題