2011-12-23 8 views
0

私はrails 3.1.3(私は最新バージョンと思われます)を使用しています。私のアプリケーションでは、gem devise for user authを使用しています。ユーザー・ショー(プロファイル)ページを追加するために、私はUsers_Controller.rbDevise User Show Pageコントローラが動作しない

class UsersController < ApplicationController 
    before_filter :authenticate_user! 

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

を追加し、routes.rbファイルに私はresources :usersを持っています。 私はまた、簡単なapp/views/users/show.html.erbを持っています。 ローカルホスト:3000/users/1に手作業で行くときに、これはすべてうまく動作します。しかし、私がプロファイル<%=link_to "My Profile", user_path(@user) %>(これは私のapplicationcontroller.rbにあります)へのリンクを作成しようとすると、 No route matches {:action=>"show", :controller=>"users"} しかし、私はレーキルート、アクションショーとコントローラのユーザーが表示されます。私は間違って何をしていますか? 助けてください!

答えて

3

代わりの

<%=link_to "My Profile", user_path(@user) %> 

ApplicationControllerに少し奇妙に思えることをやって、しかし

<%=link_to "My Profile", @user %> 

を行います。おそらくビューまたはレイアウトファイル内にあるはずです。

+2

ああ私はそれを理解した。 @userの代わりに、それはcurrent_userでなければなりません – Vasseurth

1

このリンクを表示するビューに@userを渡す必要があります。

+0

このリンクをアプリケーションコントローラにレンダリングします。それをコントローラーに渡す必要がありますか? – Vasseurth

0

この代替品を試すことができます。

<%=link_to "My Profile", "https://stackoverflow.com/users/#{@user.id}" %> 
関連する問題