2013-02-25 4 views
0

je suis suit ce post pour ajouter des utilisateurs comme des amis dans Ruby on RailsAjout d'amis en rubis sur des rails

http://asciicasts.com/episodes/163-self-referential-association

Je suis en mesure d'ajouter des utilisateurs comme des amis via la console de rails, mais pas via la page réelle. ..ce est mon code de contrôleur

class FriendshipsController < ApplicationController 
    def new 
    end 

    def create 
    @friendship = current_user.friendships.build(:friend_id => params[:friend_id]) 
    if @friendship.save 
     flash[:notice] = "Added friend." 
     redirect_to phones_index_path 
    else 
     flash[:notice] = "Unable to add friend." 
     redirect_to phones_index_path 
    end 
    end 

    def show 
    end 
end 

Modèle: utilisateur:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :token_authenticatable, :confirmable, 
    # :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
has_many :contacts 
has_many :phones 
has_many :friendships 
has_many :friends, :through => :friendships 
has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id" 
has_many :inverse_friends, :through => :inverse_friendships, :source => :user 
    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me, :user_id 
    # attr_accessible :title, :body 
end 

amis:

class Friendship < ActiveRecord::Base 
    attr_accessible :friend_id, :user_id 
    belongs_to :user 
    belongs_to :friend, :class_name => 'User' 
end 

Vue:

<h1>Phones#index</h1> 
<center>Users in the system<center><br/> 
<p><% @phones.each do |variable|%> 
    <% if @phn.email!= variable.email %> 
    <br/><%= variable.email %> &nbsp; <%= link_to 'Add as Friend' , friendships_path(:friend_id => @user), :method => :post %> 
    <%end%> 
    <%end%> 
<p>friends</p> 
<% for user in current_user.friends %> 
<p><%= user.email %></p> 
<%end%> 

mon avis fonctionne correctement .. si j'ajouter des amis via la console et commets, il affiche dans la vue .. où j'ai mal tourné ici??

+0

comment vous obtenez 'params [: friend_id]'? vous devriez poster votre modèle et votre vue. – jvnill

+0

Je viens d'afficher l'adresse e-mail du firend dans le fichier de vue –

+0

vous avez mal compris quelle vue je demande. pouvez-vous montrer la vue où l'utilisateur sélectionne le plus probablement l'ami qu'ils veulent ajouter? – jvnill

Répondre

0

J'ai été en mesure de le corriger .. eu un mauvais code dans mon fichier de vue .. merci beaucoup jvnill .... n'avait pas été pour vous, je n'aurais pas vérifié mon fichier de vue ... :)

changement friendships_path(:friend_id => @user) à friendships_path(:friend_id => variable) did the trick