2014-12-07 78 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

回答