2011-08-02 68 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允许通过编辑用户表单

增加社会就是这样

相关问题