【问题标题】:Why is simple_form not creating my fields and creating hidden fields instead?为什么 simple_form 不创建我的字段而是创建隐藏字段?
【发布时间】:2011-04-05 04:17:48
【问题描述】:

这是我的红宝石代码:

<%= 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 输入字段和关联选择列表。为什么会这样,我该如何解决?

顺便说一句,一个视频有很多cmet,一条评论属于视频。还有,一个comment_title有很多个cmet,一个comment属于一个video。 Comment_title 是用虚拟属性生成的。

如果您想查看任何其他代码,请告诉我。

【问题讨论】:

  • 更新了标题以更好地反映身体

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


【解决方案1】:

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

【讨论】:

  • 啊,好的,您能否提供有关我解决这两个问题的潜在选择的信息?
  • 它们都不是您想要解决的问题。你有理由不希望他们在那里吗?您可以关闭针对跨站点伪造请求的保护,但我不确定您为什么要这样做。
【解决方案2】:

好的,问题是我需要在表单元素中将“=”添加到

【讨论】:

  • 接受这个答案。
猜你喜欢
  • 1970-01-01
  • 2011-08-05
  • 2014-03-27
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
相关资源
最近更新 更多