我有一个 Rails 3 应用程序,我允许用户发帖。这些帖子还使用 Twitter gem 发布到他们的 Twitter 帐户中。
Posts 表内部有一个“验证”列,默认为 false,但是某些帖子将被标记为 true。我有这个,所以某些帖子必须由管理员用户验证。
下面是 schema.db 代码的样子:
create_table "posts", :force => true do |t|
t.text "content"
t.integer "user_id"
t.boolean "verify", :default => false
这是我的控制器verify
内部定义的方式:Posts
def verify
@post = post.find(params[:id])
@post.verify = false
@post.save
redirect_to "/verify"
end
我正在尝试在内部添加以下两行的变体,verify
以便管理员可以使用它。它在发布帖子的用户调用它时起作用,但在管理员尝试时不起作用。我得到一个undefined method 'update' for nil:NilClass
.
@twitter_user = current_user.twitter_user
@twitter_user.update(@post.content)
这是如何twitter_user
定义的:
def twitter_user
provider = self.authentications.find_by_provider('twitter')
Twitter::Client.new(:oauth_token => provider.token,
:oauth_token_secret => provider.secret)
rescue
return nil
end
应该如何更改下面的代码,以便我可以将其放入内部verify
以便管理员可以运行它,同时允许帖子转到每个发布者的 Twitter 帐户?
@twitter_user = current_user.twitter_user
@twitter_user.update(@post.content)