使用 render 作为 Rails Simple Form 中的value_method



我正在使用Simple_Form宝石进行RoR项目。对于那些不知道的人,简单表单会创建更容易在视图中使用的表单帮助程序。我的问题是关于f.association助手,它允许用户通过选择框、单选按钮或复选框轻松选择模型上的关联。

f.association有一个名为 value_method 的选项,它允许您传递一种方法,用于生成关联中各个模型的名称以供选择。默认值为 只是 to_s ,因此它将适用于选择框。但是,我正在使用单选按钮,我想知道是否有人知道使用渲染部分方法作为value_method的方法。

在我的设置中,我有一个带有 user.haml 部分的用户模型,我希望在每个复选框旁边呈现,这样选择其他用户的用户就可以轻松识别带有图片、名称和上次登录的用户div 可供选择。

谢谢,牛排查瑟用他的评论回答了我的问题。这是解决方案:

f.association :some_association, label_method: lambda { |obj| render obj }

我意识到标签方法比值方法更好,因为即使有复选框和单选按钮,简单的表单仍然将值放在选项value="..."属性中。这导致了 html 呈现错误。

最新更新