gpt4 book ai didi

html - collection_select 中自定义 text_method 的最佳实践?

转载 作者:行者123 更新时间:2023-12-01 22:24:39 27 4
gpt4 key购买 nike

我有一个 Rails 应用程序,其中包含一个在 collection_select 下拉框中显示价格的用例。例如,产品名称及其价格,或客户和欠款额。

我很清楚,简单地包含相关的帮助器来访问像 number_to_currency 这样的函数是一种糟糕的 MVC 做法,但我对 Product 或 Payment 模型的自定义方法所能做的最好的事情就是获得一个看起来像 $20.2 的值。因此,它是可读的,但不是最理想的,因为系统的大多数用户都希望将 20 美元和 20 美分表示为 20.20 美元。

有没有人对轻松自定义 collection_select 的 text_method 有任何建议?

最佳答案

collection_select 中的 text_methodvalue_method 接受一个符号,但也接受一个 lambda/proc block 它将获取当前集合元素作为参数。请参阅文档 here . lambda 在 View 的上下文中执行,因此所有 View 助手都应该在其中可用。

因此,要获得由货币格式化程序格式化的模型价格,您应该能够像下面这样调用 collection_select:

<%= collection_select :user, :payment_id, @user.payments, 
:id, ->(pmt) { number_to_currency(pmt.amount) } %>

您没有显示您的模型关联,所以这只是一个用户有很多付款的示例,您希望在选择框文本中为其设置价格格式。

关于html - collection_select 中自定义 text_method 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36807072/

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