2013-02-24 71 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的前端使用的色器件的意见和后端使用管理的意见。