加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 带有activemodel(无表格)对象的Rails 3和field

发布时间:2020-12-17 03:30:12 所属栏目:百科 来源:网络整理
导读:我有一个无表格模型,我正在尝试生成一些表单字段. 表单看起来像这样: = 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" 我期望为每个
我有一个无表格模型,我正在尝试生成一些表单字段.

表单看起来像这样:

= 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实例的方法.让它只是返回false.

并在视图中为fields_for添加f:

= f.fields_for :books,book do |bf|

我希望这会奏效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读