2011-12-30 22 views
6

私は、柱のアプリに宝石の杖act_as_followerを使用しています。私はそれを設定し、(コンソールで)動作しますが、私はどのようにビューでそれを設定するかについては無知です。 ボタンをuser.followおよびuser.stop_followingメソッドに対応させたい。acts_as_followerの設定方法

githubはこれを説明しません。助けてください。

+1

このこの宝石とは何の関係もなく、基本的なRailsのものです。もし私があなただったら、私は良いRailsの本を手に入れました。本は良いです、彼らは構造化された知識です。 –

答えて

10

リンク先のコントローラアクションを作成できます。たとえば、アプリケーションでは、次の2つのアクションがユーザコントローラに追加されています。ルートが設定されたら、私はURLヘルパーを使って自分のビューからのアクションにリンクし、javascriptコールバック経由でフラッシュメッセージを表示することになります。

がUserController:

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

    if current_user 
    if current_user == @user 
     flash[:error] = "You cannot follow yourself." 
    else 
     current_user.follow(@user) 
     RecommenderMailer.new_follower(@user).deliver if @user.notify_new_follower 
     flash[:notice] = "You are now following #{@user.monniker}." 
    end 
    else 
    flash[:error] = "You must <a href='/users/sign_in'>login</a> to follow #{@user.monniker}.".html_safe 
    end 
end 

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

    if current_user 
    current_user.stop_following(@user) 
    flash[:notice] = "You are no longer following #{@user.monniker}." 
    else 
    flash[:error] = "You must <a href='/users/sign_in'>login</a> to unfollow #{@user.monniker}.".html_safe 
    end 
end 

のconfig/route.rb:

resources :users do 
    member do 
    get :follow 
    get :unfollow 
    end 
end 

次に、あなたのビューで使用すると、コントローラのアクションにリンクするURLヘルパーを使用することができます。

<%= link_to "Unfollow", unfollow_user_path(@user) %> 
+0

私の見解では、生成されたボタンをクリックすると、[POST]/[users/unfollow]と一致する経路はありません。<%button_to( "Un-Follow"、 "unfollow")%> – Vasseurth

+0

あなたが2番目のコードブロックに示したように、メンバーはroute.rbファイルにルーティングしますか?あなたは、実際にどんなユーザーIDでもフォローしていないように見えます。 <%= button_to "Unfollow"、unfollow_user_path(@user)%> – JDutil

+0

ありがとうございます...残念ながら、button_toはlink_toと同じように動作しません。 – Vasseurth

関連する問題