gpt4 book ai didi

ruby-on-rails - Rails 3和fields_for与activemodel(无表)对象

转载 作者:行者123 更新时间:2023-12-04 18:13:00 25 4
gpt4 key购买 nike

我有一个无表模型,我正在尝试为其生成一些表单字段。

该表格如下所示:

= form_for :users, url: users_path do |f|
- books.each do |book|
= f.fields_for :books, book do |bf|
= bf.hidden_field :title, value: book.title
= f.submit "Send"

我期望为每个字段生成的内容是这样的:
<input name="users[books][][title]" type="hidden" value="Some Book Title">
<input name="users[books][][title]" type="hidden" value="Some Book Title">
<input name="users[books][][title]" type="hidden" value="Some Book Title">

但是,我实际上得到的是
<input name="users[books][title]" type="hidden" value="Some Book Title">
<input name="users[books][title]" type="hidden" value="Some Book Title">
<input name="users[books][title]" type="hidden" value="Some Book Title">

这意味着在提交表单时,只有最后一个输入字段可用,因为前两个输入字段引用相同的内容而被覆盖。

当模型具有事件记录后端时,此方法正常运行,但在无表的情况下则无效。

有什么建议么?

最佳答案

我认为您需要将此添加到您的用户模型中

def books_attributes= attributes
# do something with attributes
# probably:
# self.books = attributes.map{|k,v|Book.new(v)}
end

并为Book实例定义 persisted?方法。使其仅返回 false

并在 View 中为您的 f添加 fields_for:
= f.fields_for :books, book do |bf|

我希望这会起作用。

关于ruby-on-rails - Rails 3和fields_for与activemodel(无表)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9361676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com