Ruby on rails 通过提交用户名跟踪Twitter用户
Rails 3.2,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 "
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中