我在rails應用程序中使用gem acts_as_follower。我設置它並且它可以工作(在控制檯中),但是我對於如何在視圖中設置它毫無頭緒。 我想做一個按鈕對應於user.follow和user.stop_following方法。如何設置acts_as_follower
github沒有解釋這一點。請幫助。
我在rails應用程序中使用gem acts_as_follower。我設置它並且它可以工作(在控制檯中),但是我對於如何在視圖中設置它毫無頭緒。 我想做一個按鈕對應於user.follow和user.stop_following方法。如何設置acts_as_follower
github沒有解釋這一點。請幫助。
您可以創建您鏈接到的控制器操作。例如,在一個應用程序中,我將以下兩項操作添加到用戶控制器中。一旦路由也設置好了,我使用url幫助器鏈接到我的視圖中的動作,並最終通過javascript回調顯示flash消息。
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
配置/ route.rb:
resources :users do
member do
get :follow
get :unfollow
end
end
然後在您的視圖中可以使用url幫手鍊接到控制器動作:
<%= link_to "Unfollow", unfollow_user_path(@user) %>
在我看來,我有<%= button_to(「Un-Follow」,「unfollow」)%>然而,當我點擊生成的按鈕,我只是得到沒有路由匹配[POST]「/用戶/取消關注」 – Vasseurth 2011-12-30 21:48:30
您添加了嗎?成員路由到您的route.rb文件,就像我在第二個代碼塊中顯示的那樣?您似乎沒有傳入任何用戶標識以取消關注。您應該可以將它用作<%= button_to「取消關注」,unfollow_user_path(@user)%> – JDutil 2012-01-04 23:19:04
非常感謝您......不幸的是,button_to的作用方式與link_to不同。 – Vasseurth 2012-01-05 00:53:22
這與寶石無關,這是基本的Rails的東西。如果我是你,我會得到一本好的Rails書。書很好,它們是結構化的知識。 – 2011-12-30 19:52:13