实际上,我在计算机科学方面遇到了一些困难的练习(我认为对我来说很难,哈哈)。
我们正在使用 Ruby on Rails 做一些基本的事情,我必须打开一个 csv 文件来获取关于我的“用户”模型的更多信息,这是一个普通的 Rails 脚手架。
所以现在我打开我的 users_controller.rb 文件中的 csv 文件并搜索正确的行并将它们添加到实例变量中。
但我想知道我是否可以编写一个类似于 ActiveRecord 模型的类。所以我更改代码以使用 ActiveModel。但正如我在一些谷歌搜索结果中所读到的,ActiveModel 不能像关联那样使用 ActiveRecord。但拥有它们会很棒。
所以我希望你能帮助我。我怎样才能为我的模型提供像关联这样的 ActiveRecors?
问候语 梅兰妮
最佳答案
CSV 文件应该表示为模型是绝对正确的,因为它是数据。
但是,尝试合并事件模型听起来很棘手,几乎肯定需要大量的黑客攻击或猴子修补。
除非你真的需要关联到其他模型,否则我会在模型目录中创建一个独立的类(即不继承 ActiveRecord::Base
),并将解析 CSV 的逻辑放在那里:
class User
attr_accessor :name, :email, ...
def initialize(name,email,...)
# set data
end
def self.find(param_for_search)
# Parse CSV file, find line you want
# return a User instance
self.new(name, email)
end
end
我不确切地知道你的系统是如何工作的,但通过这种方式你可以让它以类似于事件模型的方式运行。您可以添加类似的类方法,每个实例方法代表一个 CSV 文件行。
关于ruby-on-rails - 带关联的 Ruby on Rails Activemodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582575/