Rails 5.2 简单形式的Lambda函数
Rails 5.2 Simple Form Lambda Function
如何对 input_html 中的数据属性使用 lambda 函数?
假设我有一个 Author 模型和一个 Book 模型。一个作者可以有多本书,一本书只能有一个作者。
在表单中为 Author 模型。我有以下 -
<%= f.association :books, as: :check_boxes %>
我想要书的 ISBN 的数据属性,就像这样 -
<%= f.association :books, as: :check_boxes, input_html: {data: {isbn: lambda {|book| book.isbn} }} %>
但这不起作用。关于如何实现这一点有什么想法吗?
我不认为那是在 simple_form 的 input_html
API 中...但是您总是可以像这样构建集合并将其传递给输入(未经测试):
<% collection = f.object.books.map { |book| [book.id, book.name, data: { isbn: book.isbn }] } %>
<%= f.association :foo, as: :check_boxes, collection: collection %>
您可能需要在 Author#new
中初始化集合,或者您可能希望避免使用 f.association
并在通过 collection
后使用 f.input
] ... 但我希望这能引导您朝着正确的方向前进。让我知道获胜的选项是什么!
如何对 input_html 中的数据属性使用 lambda 函数?
假设我有一个 Author 模型和一个 Book 模型。一个作者可以有多本书,一本书只能有一个作者。
在表单中为 Author 模型。我有以下 -
<%= f.association :books, as: :check_boxes %>
我想要书的 ISBN 的数据属性,就像这样 -
<%= f.association :books, as: :check_boxes, input_html: {data: {isbn: lambda {|book| book.isbn} }} %>
但这不起作用。关于如何实现这一点有什么想法吗?
我不认为那是在 simple_form 的 input_html
API 中...但是您总是可以像这样构建集合并将其传递给输入(未经测试):
<% collection = f.object.books.map { |book| [book.id, book.name, data: { isbn: book.isbn }] } %>
<%= f.association :foo, as: :check_boxes, collection: collection %>
您可能需要在 Author#new
中初始化集合,或者您可能希望避免使用 f.association
并在通过 collection
后使用 f.input
] ... 但我希望这能引导您朝着正确的方向前进。让我知道获胜的选项是什么!