0

我有两个 RoR3 应用程序:

  • http://users.domain.local
  • http://profiles.domain.local

我创建了“用户/模型/profile.rb”:

class Profile < ActiveResource::Base
  self.site = "http://profiles.domain.local"
end

在 'profiles/models/profile.rb' 我有:

attr_accessible :name

我的个人资料的 SQL 表包含以下列:

  • ID
  • 姓名
  • 用户身份

因此,如果我运行一个名为“test_name”Profile.create(:name => "test_name")的新配置文件。http://profiles.domain.local

出于明显的安全原因,我不想让 'user_id' 属性可访问,但我需要在从 'users' 应用程序创建配置文件时设置它。

我尝试了很多方法来做到这一点,但我找不到一个简单的解决方案。也许,有可能if在“profile”应用程序的“attr_accessible”附近有一条语句来填充来自“user”应用程序的请求。

有人可以帮助我吗?

4

2 回答 2

1

您可以尝试类似 Amazon Web Services 所做的事情:对每个请求使用一个非常长的、随机生成的密钥。检查您的个人资料应用程序中的密钥是否正确,如果是,请更新属性。

于 2011-01-11T02:20:47.677 回答
0

解决方案:不要简单地Profile.create使用,而是使用关联构建器。保护user_id属性并使用user.profiles.create!(params[:profile])它自动将user_id配置文件的字段设置为任何user对象。

于 2011-01-11T03:18:47.543 回答