【问题标题】:TypeError (expected Hash (got String) for param `content'TypeError(参数“内容”的预期哈希(得到字符串)
【发布时间】:2011-10-20 12:42:45
【问题描述】:

我目前正在尝试将 widgEditor 添加到 ruby​​ on rails 中的表单,但是每当我点击提交时,我都会收到以下错误:

TypeError (expected Hash (got String) for param `content'

表格代码如下:

<div class="field">
<%= f.label :content %><br />
<%= f.text_area :content,  :cols => "20", :rows=>"4", :class=>"widgEditor" %>
</div>
<div class="actions">
    <%= f.submit %>
 </div>

有人遇到过这个问题吗?

【问题讨论】:

  • 您能看到使用 firebug 或 chrome developerbar 发布的内容吗?
  • 对不起!这里是:template_contentWidgToolbarSelectBlock: template%5Bcontent%5D:

    我已经

    输入了

    这里有一些内容

    template%5Bcontent%5DWidgEditor:true
  • 你能把完整的表格代码过去吗?
  • Manuel 让我朝着正确的方向前进,据我所知,它提交了太多参数。通过添加 $(this.theExtraInput).remove();对于 widgEditor 的 cleanSource 函数,它现在只提交内容字段并且工作正常。感谢您的帮助!

标签: javascript ruby-on-rails


【解决方案1】:

对于遇到同样问题的其他人:

当您的表单中有两个字段时会导致此错误:

video: 'some string'
video['url']:  'some url'

然后 rails 将崩溃并出现错误:expected Hash (got String) for param

解决方案非常简单:将“视频”更改为其他内容。例如:

video_origin_url: 'some string'
video['url']: 'some url'

另请参阅此问题:https://stackoverflow.com/a/19246703/445908

【讨论】:

  • 伙计,你不知道这对我有多大帮助。这根本不是一个措辞明显的错误。在我看到你的评论之前非常迷茫!
  • 同上@notaceo。默认错误消息应替换为您的解释。 :) 谢谢!
  • A+ 还想说声谢谢。就我而言,我忘记了我在使用 JS 更新的表单顶部放置了一个隐藏字段。
【解决方案2】:

事实证明,据我所知,它提交的参数太多。通过添加 $(this.theExtraInput).remove();到 widgEditor 的 cleanSource 函数,它现在只提交内容字段并且工作正常。

【讨论】:

    猜你喜欢
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2017-10-28
    相关资源
    最近更新 更多