我试图确保此方法只允许编辑适合当前帐户的数据。我正在运行 Rails 3.12,使用acts_as_tenant 来管理帐户,并设计用于用户身份验证。
当我尝试访问 /dataload_mailchimp/edit 时,我收到以下错误:
NoMethodError (undefined method `api_key' for #<ActiveRecord::Relation:0x00000006d02590>):
2013-09-27T17:12:23.947590+00:00 app[web.1]: app/controllers/dataload_mailchimps_controller.rb:32:in `edit'
据我了解,找不到 api_key 错误。但是,我以 account_id = 3 的用户身份登录,并且 dataload_mailchimps 表中有该 account_id 的有效 api_key。
我试图更好地理解我如何正确地确定此方法的范围,以便返回来自 dataload_mailchimps 的正确记录?
感谢您的任何帮助或建议。
我的控制器:
class DataloadMailchimpsController < ApplicationController
before_filter :authenticate_user!
def edit
@dataload = DataloadMailchimp.where( account_id: current_user.account )
unless @dataload
redirect_to new_dataload_mailchimp_path
else
gibbon = Gibbon.new(@dataload.api_key)
@lists = []
gibbon.lists['data'].each do |list|
@lists << MailchimpList.find_or_create_by_list_id(:list_id => list['id'], :name => list['name'])
end
end
end
end
从 dataload_mailchimps 表中:
id api_key account_id
4 6a3 3