尝试通过使用omniauth-twitter和twitter宝石重新创建Twitter来处理oAuth,我一直在一个地方查看我在我的应用程序中关注的所有用户的推文。我可以查看自己的推文和其他用户'在自己的个人资料中。
这是错误跟踪
PagesController #home
中的NoMethodError未定义的方法`其中'对于Twitter ::时间线:类
app / models / twitter / timeline.rb:47:in`from_users_followed_by'
app / models / user.rb:24:在'hub'
app / controllers / pages_controller.rb:5:在'home'
pages_controller.rb
def home
if signed_in?
@hub_items = current_user.hub.paginate(page: params[:page])
end
end
user.rb
def hub
Twitter::Timeline.from_users_followed_by(self)
end
timeline.rb
module Twitter
class Timeline
def self.from_users_followed_by(user)
followed_user_ids = "SELECT followed_id FROM relationships
WHERE follower_id = :user_id"
Twitter::Timeline.where("user_id IN (#{followed_user_ids}) OR user_id = :user_id",
user_id: user.id)
end
end
end
**控制器
hub_controller.rb
def show
@hub_items = []
render 'pages/home'
end
**观看次数
_hub.html.erb
<% if @hub_items.any? %>
<ol class="microposts">
<%= render partial: 'shared/hub_item', collection: @hub_items %>
</ol>
<%= will_paginate @hub_items %>
<% end %>
_hub_items.html.erb
<li id="<%= hub_item.id %>">
<% if @hub_item.any? %>
<% @hub_item.each do |post| %>
<% if post.provider == "twitter" %>
<%= render partial: "users/twitter_post", locals: {post: post} %>
<% end %>
</li>
那么,有没有办法编写我的self.from_users_followed_by方法,以便不必从ActiveRecord :: Base继承?我可以提供其他任何内容。需要弄清楚这一点。