在Grails的控制器中添加什么?

时间:2014-06-06 09:25:16

标签: grails

我正在做一个应用程序,登录后,用户获取一些设置(在复选框中),这在我的数据库中是布尔值。 我试图让每个用户都检查他自己的设置,当用户日志选中时,是指数据库中的值为1的那些字段。我的复选框是:

<g:checkBox name="task" value="${setting?.message}" />
<label class="text2" for="calendar">Things to done</label>

我必须在控制器中写什么?

1 个答案:

答案 0 :(得分:0)

在您的场景中,我了解用户和设置之间存在一对多的关系,因为您在用户成功登录后解释用户将其带到一个列出所有可能设置的视图。

您可以在视图中执行此操作

<g:each in="${settings}" var="setting">
    <label class="checkbox">
        <g:checkBox name="settings" value="${setting}" checked="${user?.settings?.contains(setting)}"/> ${setting}
    </label>
</g:each>

我从一个类似的场景中获取此代码,我在某天前解决了你可以在这里看到它in this github repo

在控制器中发送表单后,您可以这样处理

def settings = params.list("settings")

您可以看到完整的操作控制器示例here

您现在可以应用一些user.addToSettings或user.removeFromSetting以保存所选设置

我希望它可以帮到你