0
我有一個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
這是我Posts
控制器內部是如何定義verify
:
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)
我知道,當管理員嘗試運行它...它不應該是CURRENT_USER你的答案給了我'未定義方法'user_id'爲nil:NilClass'。關於如何解決這個問題的任何想法? – user2159586
你確定這篇文章是正確加載嗎?在你的'verify'方法中,你使用'@post = post.find(params [:id])',你確定不應該是'@post = Post.find(params [:id])'(with大寫'P')? –
是的帖子肯定是正確加載;我不小心將它輸入小寫。我只是想弄清楚如果管理員運行'@ twitter_user'代碼行就可以工作 – user2159586