【问题标题】:Rails 5.2 Simple Form Lambda FunctionRails 5.2 简单形式的 Lambda 函数
【发布时间】:2018-08-19 15:26:20
【问题描述】:

如何为 input_html 中的数据属性使用 lambda 函数?

假设我有一个 Author 模型和一个 Book 模型。一个Author可以有很多书,Book只能有一个作者。

Author 模型的表单中。我有以下 -

<%= f.association :books, as: :check_boxes %>

我想拥有图书 ISBN 的数据属性,就像这样 -

<%= f.association :books, as: :check_boxes, input_html: {data: {isbn: lambda {|book| book.isbn} }} %>

但这不起作用。关于如何实现这一目标的任何想法?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 simple-form


    【解决方案1】:

    我不认为这在 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 ...但我希望这能引导您朝着正确的方向。让我知道获胜的选择是什么!

    【讨论】:

    • 谢谢我的好先生!这非常适合我的情况!
    • 也谢谢,它有效,但在我的情况下,返回的数组必须首先包含标签,然后是值,以及所有其他的想法。所以像 [label, id, data]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2020-12-13
    • 2018-04-12
    相关资源
    最近更新 更多