Formtastic和belongs_to协会

时间:2012-06-16 10:10:17

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 formtastic

我正在努力学习并需要一些帮助。

因此,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,以便在用户提交表单时使用正确的关联保存帖子。

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

1 个答案:

答案 0 :(得分:0)

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

执行此操作的正确方法是在PostsController的create操作中指定@post.author = current_user