2013-02-24 95 views
2

試圖讓我的all_users頁面呈現所有擁有帳戶的用戶列表 - 然後每個列表項目都會鏈接到該用戶的個人資料頁面。我有頁面正確地呈現用戶名,但他們沒有指向他們的用戶頁面。他們的用戶頁面應該是/ user/username,但鏈接指向/ username,顯然會出現錯誤。我真的非常感謝這個幫助。堆棧溢出確實令人難以置信。從All_Users鏈接到用戶配置文件,路由頁面

型號:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :token_authenticatable, :confirmable, 
    # :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me, :username 
    has_many :items 

    validates_presence_of :username 
    validates_uniqueness_of :username 

    def to_param 
    username 
    end 

end 

控制器:

class UsersController < ApplicationController 
    def show 
    @user = User.find_by_username(params[:id]) 
    end 
    def index 
@user = User.find(:all) 
    end 
end 

All_Users的觀點:

<div class="well"> 
    <h1>All users</h1> 

    <% @user.each do |user| %> 
    <%= link_to user.username, public_profile_path(user.username) %><br/> 
    <% end %> 
</div> 

路線:

回答

1
match '/username/:name' => 'users#show', via: :get, as: :public_profile 
+0

match'/ users /:username'=>'users#show',via::get,as :: public_profile 我做到了,是嗎? – momchenr 2013-02-24 23:47:08

+1

不,你已經定義了兩次相同的助手,它們應該是不同的。試試:show_public_profile – RadBrad 2013-02-24 23:50:30

1

我傾向於做一個新的控制器,以便我不會最終重寫設計。

類似於admin ::然後,用戶在那裏,我只是做了基本的骨架,然後在控制器的設計用戶模型的映射瓦爾。

這樣我可以restyle的前端使用的色器件的意見和後端使用管理的意見。