首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rails:提交包含多个对象的表单

在Rails中,提交包含多个对象的表单通常需要使用嵌套表单(nested forms)。嵌套表单允许你在一个表单中同时创建和更新多个相关的对象。以下是一个简单的例子,说明如何在Rails中创建一个包含多个对象的表单。

首先,确保你的模型关系已经设置好。例如,假设你有一个Author模型和一个Book模型,并且Author模型has_manyBook模型。

代码语言:ruby
复制
class Author< ApplicationRecord
  has_many :books
  accepts_nested_attributes_for :books
end

class Book< ApplicationRecord
  belongs_to :author
end

接下来,在AuthorsController中,确保你允许books_attributes的参数传递。

代码语言:ruby
复制
def author_params
  params.require(:author).permit(:name, books_attributes: [:id, :title, :_destroy])
end

然后,在app/views/authors/_form.html.erb文件中创建一个嵌套表单。

代码语言:html
复制
<%= form_with(model: author, local: true) do |form| %>
  <%= form.label :name %>
  <%= form.text_field :name %>

  <%= form.fields_for :books do |book_form| %>
    <%= book_form.label :title %>
    <%= book_form.text_field :title %>
  <% end %>

  <%= form.submit "Submit" %>
<% end %>

这个表单允许你在创建和更新Author时同时创建和更新多个Book对象。

在这个例子中,我们使用了accepts_nested_attributes_for方法来允许Author接受嵌套的Book属性。同时,在author_params方法中,我们使用permit方法来允许books_attributes的参数传递。

最后,在app/views/authors/_form.html.erb文件中,我们使用fields_for方法来创建一个嵌套表单,这样你就可以在一个表单中同时创建和更新多个相关的对象。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

7分43秒

day14/上午/281-尚硅谷-尚融宝-动态表单的基本结构和表单自动提交

25分5秒

44. 尚硅谷_佟刚_Struts2_表单的重复提交问题

9分59秒

day18/上午/357-尚硅谷-尚融宝-表单提交的测试

57分49秒

51. 尚硅谷_佟刚_JavaWEB_HttpSession 之表单的重复提交.wmv

18分23秒

01-html&CSS/21-尚硅谷-HTML和CSS-表单提交的细节

7分33秒

day08_面向对象(上)/09-尚硅谷-Java语言基础-体会类的多个对象的关系

7分33秒

day08_面向对象(上)/09-尚硅谷-Java语言基础-体会类的多个对象的关系

7分33秒

day08_面向对象(上)/09-尚硅谷-Java语言基础-体会类的多个对象的关系

3分42秒

day14/上午/280-尚硅谷-尚融宝-动态表单组装和提交的说明

13分16秒

13-cookie和session/16-尚硅谷-书城项目-表单重复提交的三种常见情况

11分48秒

day18/上午/355-尚硅谷-尚融宝-表单提交接口实现方案的说明

13分21秒

10-项目第三阶段/09-尚硅谷-书城项目-表单提交失败的错误回显

领券