为什么simple_form没有创建我的字段而是创建隐藏字段呢?

时间:2011-04-05 04:17:48

标签: ruby-on-rails ruby ruby-on-rails-3 forms simple-form

这是我的红宝石代码:

<%= simple_form_for([@video, @video.comments.new]) do |f| %>
  <% f.association :comment_title %>
  <% f.input :body %>
  <% f.button :submit %>
<% end %>

这是生成的HTML标记:

<form accept-charset="UTF-8" action="/videos/485/comments" class="simple_form comment" id="new_comment" method="post">
    <div style="margin:0;padding:0;display:inline">
        <input name="utf8" type="hidden" value="✓">
        <input name="authenticity_token" type="hidden" value="55xSU8JUe1SgipjAkAEvCvidFdJY3hv8Qz5VBqUSrdE=">
    </div>
    <input class="button" id="comment_submit" name="commit" type="submit" value="Create Comment">
</form>

显然,它没有正确创建:body输入字段和关联选择列表。为什么这样,我该如何解决?

顺便说一下,视频有很多评论,评论属于视频。此外,comment_title有很多评论,评论属于视频。 Comment_title是使用虚拟属性生成的。

如果您还想查看其他任何代码,请与我们联系。

2 个答案:

答案 0 :(得分:3)

这两个都是因为您的rails应用程序中的选择。首先,您已选择将应用程序配置为使用utf8进行字符编码。第二个是因为默认情况下,应用程序设置为防止跨站点请求伪造攻击。真实性令牌确保当用户提交表单时回复到服务器的响应实际上来自您,而不是其他来源只是观察您的流量并发布以捣乱您的数据库。

答案 1 :(得分:2)

好的问题是我需要在我的表单元素中将“=”添加到&lt;%=。