我在Ruby on Rails上编写了我的第一个应用程序(我以前只通过railstutorial.org),这是一个简单的电子处方服务,我运行的一件事我无法应对
我想创建添加新处方的表格,并添加一些属于这个新创建处方的药物。
第一个问题是 - 在填写表格处方时,我怎样才能真正将药物添加到处方药处方?我之前做过的是我首先使用@user.prescription.create(presc_attributes)
和之后@prescription.relations.create(medicine_id)
创建处方。
现在我需要在一个表单上使用一个按钮发送整个内容(一个HTML请求,我是对的吗?),除非你们有更好的想法。我也在努力想法在哪里实际制定方法创造这个处方。它应该在PrescriptionController#new中还是可能连接到RelationsController #new?
我已经阅读了几篇关于嵌套字段的文章,但它们似乎与我所需要的完全匹配。
我对RoR真的很新,很抱歉,如果我错过了重要的事情。
这也是我的EER http://i.stack.imgur.com/sa9CB.png
答案 0 :(得分:0)
UPDATE ---
啊,我知道,我认为你想要的是与inverse_of的关系。
如果在连接模型上使用belongs_to,最好在belongs_to上设置:inverse_of选项,这意味着以下示例正常工作(其中tags是has_many:通过关联):< / p>
@post = Post.first
@tag = @post.tags.build name: "ruby"
@tag.save
最后一行应该保存通过记录(一个Taggable)。这仅在设置:inverse_of时才有效:
class Taggable < ActiveRecord::Base
belongs_to :post
belongs_to :tag, inverse_of: :taggings
end
如果您未设置:inverse_of记录,则关联将尽力使其与正确的逆匹配。自动反向检测仅适用于has_many,has_one和belongs_to关联。
FROM http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html