2016-04-11 8 views
0

Acts_as_follower'ı yükledim. Yöntemleri konsolumdaki belgelerden kullandım, böylece kullanıcı 1'in ActiveRecord'da kullanıcı 2'yi (devise kullanarak) izlediğini ve kullanıcıların/show.html.erb sayfasındaki ön ucumda uygun takip/unfollow olduğunu gösterdiğimi belirledim uyguladığım düğmenin bir kısmı. Ne yazık ki, follow/unfollow düğmesine bastığımda hiçbir şey değişmez veya gerçekleşmez.İş Takibi İzleyicisi ön uçta çalışmıyor

Bence bu yönlendirme ama hiç kimsenin neden hiçbir şey olmadığına dair bir fikri olup olmadığını merak ediyorum. Konsolumdan hareket eksikliğini doğruladım.

user.rb

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    acts_as_followable 
    acts_as_follower 

    has_attached_file :image, :styles => { :medium => "300x300>", :thumb=> "100x100>" } 
    validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/ 

    has_many :articles 
    has_many :comments 
end 

routes.rb

Rails.application.routes.draw do 
    devise_for :users 
    resources :articles do 
    member do 
     put "Like", to: "articles#upvote" 
     put "Disike", to: "articles#downvote" 
    end 
    resources :comments 
    end 

    resources :users do 
    get :follow 
    get :unfollow 
    end 

    root 'welcome#index' 

users_controller.rb

class UsersController < ApplicationController 
    def show 
     @user = User.find(params[:id]) 
     @user_articles = @user.articles 
    end 

    def create 
    @user = User.find(params[:user_id]) 
    current_user.follow(@user) 
    end 

    def destroy 
    @user = User.find(params[:user_id]) 
    current_user.stop_following(@user) 
    end 
end 

followers_controller.rb

class FollowsController < ApplicationController 
    before_action :authenticate_user! 
    respond_to :js 

    def create 
    @user = User.find(params[:user_id]) 
    current_user.follow(@user) 
    end 

    def destroy 
    @user = User.find(params[:user_id]) 
    current_user.stop_following(@user) 
    end 
end 

kullanıcılar düğmesi/show.html.erb Kişisel şüphe doğrudur

<div class="follow"> 
    <% if @user.followed_by?(current_user) %> 
    <%= form_tag user_unfollow_path(user_id: @user.id), method: :post, remote: true do %> 
     <center><%= button_tag 'unfollow', class: 'btn btn-primary' %></center> 
    <% end %> 
    <% else %> 
    <%= form_tag user_follow_path(user_id: @user.id), method: :post, remote: true do %> 
     <center><%= button_tag 'follow', class: 'btn btn-success' %></center> 
    <% end %> 
    <% end %> 
</div> 
</div> 

cevap

0

, bu gerçekten de bir yönlendirme konudur. aradığını unfollow

resources :users do 
    post :follow, to: "#followers#create" 
    delete :unfollow, to: "followers#destroy" 
end 

Not: Ama bu kadar ileri alma :)

Kişisel yolları daha gibi görünmelidir için sana, ön uç tartışmak değil belgelere olarak çaba için iyi A almak imha, bu yüzden kongre ile, aynı zamanda kongre oluşturmak tarafından post olmalıdır.

<div class="follow"> 
    <% if @user.followed_by?(current_user) %> 
    <%= form_tag user_unfollow_path(user_id: @user.id), method: :delete, remote: true do %> 
     <center><%= button_tag 'unfollow', class: 'btn btn-primary' %></center> 
    <% end %> 
    <% else %> 
    <%= form_tag user_follow_path(user_id: @user.id), method: :post, remote: true do %> 
     <center><%= button_tag 'follow', class: 'btn btn-success' %></center> 
    <% end %> 
    <% end %> 
</div> 
+0

Bu çalıştı:

, görünümünüzü nasıl görüneceğini emin olun düşünüldüğünde! çok teşekkür ederim :)!! –

+0

harika, çok sevindim. cevabı kabul edebilir misin :) – trh