Kev*_*ord 11 rest resources post ruby-on-rails
我正在使用rails创建一个API,以显示我正在处理的iPhone应用程序.据我所知,通常在发布到Rails中控制器的create动作时只创建一个资源.但是,我不确定一次创建多个资源的最佳方法.在单个POST中发布包含多个资源的JSON/XML是否可以在同一类型中创建?
例如,创建一条消息,然后添加许多收件人.消息本身有一个模型,然后是属于该消息的收件人的模型.我通过发布到/消息创建消息,但如果我有50个收件人添加到该消息,该怎么办?对/ messages/1 /收件人进行50次单独的POST似乎过度且浪费.最好的方法是什么?
我是Rails和RESTful应用程序的新手,非常感谢任何帮助.
你可以用accepts_nested_attributes_for这个。在您定义关联 \xe2\x80\x93 的父模型 \xe2\x80\x93 中,has_many您需要添加并accepts_nested_attributes_for为其指定相同的关联名称。很像这样:
class Message < ActiveRecord::Base\n has_many :recipients\n accepts_nested_attributes_for :recipients\nend\n\nclass Recipient < ActiveRecord::Base\n belongs_to :message\nend\nRun Code Online (Sandbox Code Playgroud)\n\n然后,在消息的表单中,您将有一堆收件人字段,名称类似于message[recipients_attributes][][name]和message[recipients_attributes][][email]。或者您可以使用form_forand fields_for(您只需记住在转到该new页面时在 has_many 集合中构建至少一个实例)。
有关更多(和更好)的示例,请观看 Railscast。
\n