Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过提交用户名跟踪Twitter用户_Ruby On Rails_Ruby On Rails 3_Twitter - Fatal编程技术网

Ruby on rails 通过提交用户名跟踪Twitter用户

Ruby on rails 通过提交用户名跟踪Twitter用户,ruby-on-rails,ruby-on-rails-3,twitter,Ruby On Rails,Ruby On Rails 3,Twitter,Rails 3.2,Twitter应用程序 解决方案见: 目标是这样的一种形式 username=>User=>User.id=>following\u id=>following?=>新建或销毁关系 以下是我目前必须关注的twitter用户 views/users/buddies.html.erb <%= form_for @relationship do |f| %> <%= f.text_field :followed_id %> <%= f.submit "

Rails 3.2,Twitter应用程序

解决方案见:

目标是这样的一种形式

username=>User=>User.id=>following\u id=>following?=>新建或销毁关系

以下是我目前必须关注的twitter用户

views/users/buddies.html.erb

<%= form_for @relationship do |f| %>
<%= f.text_field :followed_id %>
<%= f.submit "Add" %>
relationships\u controller.rb

def buddies
@relationship =Relationship.new(params[:followed_id])
    def create
    @relationship = Relationship.new(params[:relationship])
    @relationship.follower_id = current_user.id

    if @relationship.save
        redirect_to buddies_path, notice: "Phriend added"
        else
        flash[:error] = "Phriend not added";
        redirect_to buddies_path
    end
class Relationship < ActiveRecord::Base
  attr_accessible :followed_id, :follower_id
   belongs_to :follower, class_name: "User"
   belongs_to :followed, class_name: "User"
   validates :followed_id, presence: true
   validates :follower_id, presence: true
class User < ActiveRecord::Base
  has_many :follower_relationships, class_name: "Relationship", foreign_key: "followed_id"
  has_many :followed_relationships, class_name: "Relationship", foreign_key: "follower_id" 
  has_many :followers, through: :follower_relationships
  has_many :followeds, through: :followed_relationships
  @user = User.find(params[:username])
      if @user
        if current_user.following? @user.id
          Relationship.new(params[:followed_id])
        else
          Relationship.destroy(params[:followed_id])
        end
      end
def following? user
self.followeds.include? user
end
relationship.rb

def buddies
@relationship =Relationship.new(params[:followed_id])
    def create
    @relationship = Relationship.new(params[:relationship])
    @relationship.follower_id = current_user.id

    if @relationship.save
        redirect_to buddies_path, notice: "Phriend added"
        else
        flash[:error] = "Phriend not added";
        redirect_to buddies_path
    end
class Relationship < ActiveRecord::Base
  attr_accessible :followed_id, :follower_id
   belongs_to :follower, class_name: "User"
   belongs_to :followed, class_name: "User"
   validates :followed_id, presence: true
   validates :follower_id, presence: true
class User < ActiveRecord::Base
  has_many :follower_relationships, class_name: "Relationship", foreign_key: "followed_id"
  has_many :followed_relationships, class_name: "Relationship", foreign_key: "follower_id" 
  has_many :followers, through: :follower_relationships
  has_many :followeds, through: :followed_relationships
  @user = User.find(params[:username])
      if @user
        if current_user.following? @user.id
          Relationship.new(params[:followed_id])
        else
          Relationship.destroy(params[:followed_id])
        end
      end
def following? user
self.followeds.include? user
end
因此,它的作用是:

我有4个用户:1:benben,2:nicknick,3:Steve,4:Pete

这些是他们的用户ID。这也是它们的跟随者/ed ID

Benben可以输入“2”,然后跟着“nicknick”等

我想一个系统,我可以遵循和提交用户名以下

所以我想象了这样的事情

users\u controller.rb

def buddies
@relationship =Relationship.new(params[:followed_id])
    def create
    @relationship = Relationship.new(params[:relationship])
    @relationship.follower_id = current_user.id

    if @relationship.save
        redirect_to buddies_path, notice: "Phriend added"
        else
        flash[:error] = "Phriend not added";
        redirect_to buddies_path
    end
class Relationship < ActiveRecord::Base
  attr_accessible :followed_id, :follower_id
   belongs_to :follower, class_name: "User"
   belongs_to :followed, class_name: "User"
   validates :followed_id, presence: true
   validates :follower_id, presence: true
class User < ActiveRecord::Base
  has_many :follower_relationships, class_name: "Relationship", foreign_key: "followed_id"
  has_many :followed_relationships, class_name: "Relationship", foreign_key: "follower_id" 
  has_many :followers, through: :follower_relationships
  has_many :followeds, through: :followed_relationships
  @user = User.find(params[:username])
      if @user
        if current_user.following? @user.id
          Relationship.new(params[:followed_id])
        else
          Relationship.destroy(params[:followed_id])
        end
      end
def following? user
self.followeds.include? user
end
user.rb

def buddies
@relationship =Relationship.new(params[:followed_id])
    def create
    @relationship = Relationship.new(params[:relationship])
    @relationship.follower_id = current_user.id

    if @relationship.save
        redirect_to buddies_path, notice: "Phriend added"
        else
        flash[:error] = "Phriend not added";
        redirect_to buddies_path
    end
class Relationship < ActiveRecord::Base
  attr_accessible :followed_id, :follower_id
   belongs_to :follower, class_name: "User"
   belongs_to :followed, class_name: "User"
   validates :followed_id, presence: true
   validates :follower_id, presence: true
class User < ActiveRecord::Base
  has_many :follower_relationships, class_name: "Relationship", foreign_key: "followed_id"
  has_many :followed_relationships, class_name: "Relationship", foreign_key: "follower_id" 
  has_many :followers, through: :follower_relationships
  has_many :followeds, through: :followed_relationships
  @user = User.find(params[:username])
      if @user
        if current_user.following? @user.id
          Relationship.new(params[:followed_id])
        else
          Relationship.destroy(params[:followed_id])
        end
      end
def following? user
self.followeds.include? user
end

你认为什么会起作用?

你所要做的就是确保你找到了你想要联系的正确用户

无论您是按id还是按名称搜索,这都不重要。如果您有该用户的活动记录,则只需连接对象即可轻松关联

#find by whatever params float your boat
@user = User.find(params[:user])
#add the user to the list of followers
current_user.followers << @user
current_user.save

#or you could delete
@lame_follower = current_user.followers.find(1)
@lame_follower.destroy
#通过任何参数找到你的船
@user=user.find(参数[:user])
#将用户添加到关注者列表

顺便说一句,你的命名惯例让我很烦恼,我无法尝试遵循。但如果你需要更多的澄清,或者我只是错过了你的问题,请让我知道。这样我可能知道的比我实际知道的更多。在这个应用程序中,我违反了很多规则,所以我觉得这不会起作用。我经常找不到没有ID的用户。不用担心。这就是我们来这里学习的原因。作为响应,您无法找到没有ID的用户。您是否正在检查是否将任何内容打印到日志中,以了解发生这种情况的原因?尝试使用logger.debug(@user.inspect)。我很好奇你是否能从中获得一些见解。哦,伙计,准备好了,否则你的脑袋会被炸飞的。您通常应该将记录器代码放在控制器中,因为应用程序的大部分逻辑都应该存在于控制器中。我的头脑还没有崩溃,但我已经明白了!几乎,我可以通过用户名跟踪用户,但当我尝试取消跟踪时,我得到了这个<代码>未知键:follower\u id app/models/user.rb:34:在unfollow app/controllers/users\u controller.rb:21:在buddies中