我正在使用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 呈现错误。