0

我正在尝试边做边学,需要一些帮助。

因此,formtastic 可以处理 belongs_to 关联(如 Post belongs_to :author),使用来自父模型的选择来渲染一个选择或一组无线电输入。

我想要做的是创建一个帖子,而不必在创建表单中选择作者。

我想通过隐藏的表单字段设置作者 ID,但是当我尝试这个时

 <%= f.input :author, :as => :hidden, :value => '33' %>

我得到了未初始化的常量作者,并尝试了我未能开始工作的各种其他方式。

我得到的最接近的方法是尝试自定义选择的选择并隐藏选择,如下所示:

<%= f.input :author, :as => :select, :collection => ["33"], :input_html => { :style => 'visibility: hidden' } %>

但是即使上面隐藏了选择并且可以工作,它仍然会为作者显示一个表单标签,我不希望它显示

如果我试图实现的目标仍然不清楚,这是一个更好地解释我的场景的示例:

想象一下,你有一个作者列表页面,作为作者,你点击你的名字进入一个可以管理各种事情和创建帖子的区域。

问题:当您单击创建帖子并呈现表单时,您不希望必须从其中一个字段中选择您的姓名来告诉应用您正在创建的帖子属于您,因为您希望系统知道它是您的因为你在一个属于你的配置区域。

我试图通过使用隐藏的表单字段来设置作者 ID,以便在用户提交表单时以正确的关联保存帖子。

谁能给我一个如何做到这一点的例子?作为一名学习者,也许有更好的方法来解决这个问题,所以任何人都可以给我建议并指出一些好的例子

4

1 回答 1

0

您不应该在隐藏的表单字段中填充它;隐藏的表单字段仍然可以由用户更改,最终您允许用户创建其他作者的帖子。

执行此操作的正确方法是@post.author = current_user在 PostsController 的创建操作中分配。

于 2012-06-16T13:35:47.317 回答