【发布时间】:2016-01-11 00:02:31
【问题描述】:
我已经对此进行了一段时间的研究,但我仍然不清楚如何执行我的预期操作。我觉得我可能使用了不正确的术语,所以我希望有人能指出我正确的方向。
我有一个应用程序,它有 documents 和 templates,它们各自的模型。我有我的模型,所以:
class Document < ActiveRecord::Base
belongs_to :user
has_one :template
end
和
class Template < ActiveRecord::Base
has_one :document
end
最后,
class User < ActiveRecord::Base
has_many :templates
has_many :documents, :through => :templates
end
我的user/documents 协会似乎运作良好。
我想设置一个工作流,用户将上传多个模板,然后在表单上为/documents/new 选择一个template,以基于该模板创建一个自定义的document。我将 template_id 作为我的文档模型中的一个字段,并打算在 documents 控制器中的新操作上使用一些按 @document.template_id = template.id 顺序的语法。当我尝试在我的documents 模型的新视图中使用f.select 时遇到了我的第一个障碍,因为我无法找到一种从列表中动态选择当前用户可用模板的方法。
我知道我在这里花了一点时间,但希望有人可以提供有用的答案和/或其他一些 SO 帖子或超出标准 Rails Association Basics 的进一步阅读,这些似乎无法满足我的需求。
【问题讨论】:
-
看来我可以从
documents/new调用current_user.templates,但输出没有任何意义(至少对我而言):#<Template::ActiveRecord_Associations_CollectionProxy:0x007fb9dfa6e8e8> -
你能打印
current_user.templates.first的输出吗?
标签: ruby-on-rails associations model-associations