2011-12-30 32 views
6

Bir ray uygulamasında gem acts_as_follower kullanıyorum. Ben kurdum ve çalışır (konsolda), ancak bir görünümde nasıl kurulacağı konusunda clueless. Kullanıcı.follow ve user.stop_following yöntemlerine karşılık gelen bir düğme yapmak istiyorum.Nasıl kurulur acts_as_follower

Github bunu açıklamıyor. Yardım lütfen.

+1

Bu gem ile ilgisi yok, temel Rails şeyler. Senin yerinde olsaydım, iyi bir Rails kitabı alırdım. Kitaplar iyidir, yapılandırılmış bilgi vardır. –

cevap

10

Bağlandığınız denetleyici eylemleri oluşturabilirsiniz. Örneğin bir uygulamada, bir kullanıcı denetleyicisine eklenmiş aşağıdaki iki eylem var. Rotalar da kurulduktan sonra, görünümlerimden eylemlere bağlantı kurmak için url yardımcılarını kullanıyorum ve flaş mesajlarını javascript geri aramaları aracılığıyla görüntülemeyi bitiriyorum.

UsersController:

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 

Sonra görünümünde denetleyici eylem bağlamak için URL yardımcı kullanabilirsiniz:

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

Benim görüşüme göre <% = button_to ("Un-Follow", "unfollow")%> var, ancak oluşturduğum düğmeyi tıkladığımda sadece rota eşleşmiyor [POST] "/ users/unfollow" – Vasseurth

+0

Eklediniz mi? ikinci kod bloğunda gösterdiğim gibi route.rb dosyasına giden rotalar? Aslında takip etmekten vazgeçmek için herhangi bir kullanıcı kimliğinden geçmekte görünmüyorsunuz. Bunu <% = button_to "Unfollow", unfollow_user_path (@user)%> – JDutil

+0

olarak kullanabilmeniz gerekir. Maalesef button_to, link_to ile aynı şekilde çalışmıyor. – Vasseurth