2011-08-02 67 views
0

這不是關於如何使用Twitter或Facebook API的問題,而是關於如何保持數據庫同步的簡單問題。我想要做的是創建一個新的關聯帳戶,然後將其附加到當前用戶。我知道我的代碼目前是不起作用:將「關聯帳戶」(例如,Twitter,Facebook)添加到Rails 3網站

在編輯個人資料頁面

<%= f.label :account %> <i>(link another account to this profile)</i><br /> 

<% form_for @user.linked_accounts do |f| %> 
<%= f.text_field :username %> 
    <%= f.collection_select :service, User::POSSIBLE_SERVICES, :to_s, :to_s, 
    :include_blank => true 
    %> 
<%= f.submit %> 
<% end %> 

我如何得到它提交到有一項數據庫?這絕對是我需要修復的「form_for @ user.linked_accounts」。我將它更改爲@user,並且我得到一個無法解決的錯誤,因爲:服務僅在鏈接的帳戶中定義。我認爲我需要做的是創建一個新的鏈接帳戶,然後執行form_for @ user.new_account。

我收到的錯誤是:
SQLite3::SQLException: no such column: linked_accounts.user_id: SELECT "linked_accounts".* FROM "linked_accounts" WHERE ("linked_accounts".user_id = 1)

+0

您收到的錯誤表示您沒有在您的數據庫中的此列嘗試先修復它 – Awea

+0

我知道 - 問題是我需要爲當前用戶創建一個新的關聯帳戶,我不知道如何 – Jon

+1

你想鏈接現有的用戶Twitter,Facebook等......我是對的?爲什麼你沒有使用omniauth? – Awea

回答

0

有一個railscast與此交易。它使用授權表belongs_to用戶表,因此你可以添加twitter,facebook等...給用戶

演員是超過2集,並使用omniauth這是一個非常整潔的解決方案。你可以在這裏找到它們 http://railscasts.com/episodes/235-omniauth-part-1 http://railscasts.com/episodes/236-omniauth-part-2

0

如果我正確理解你的問題,它可能是一個解決方案,您可以:

  • 創建一個新的模式,包含社交網絡信息
  • 使用nested model允許通過編輯用戶表單

增加社會就是這樣

相關問題