无法使用best_in_place gem显示验证错误

时间:2011-08-21 09:49:49

标签: ruby-on-rails-3 json gem

我在Rails 3.0.9中使用best_in_place gem。好像我一切正常。我按照安装说明操作,我可以点击一个项目,编辑它并用ajax保存所有内容。

但是,在测试验证功能但输入伪造数据时,不会显示错误消息。

我不确定这是否应该通过javascript神奇地完成,或者我是否应该提供某种div标签或者可以显示错误消息的东西。

在firebug中检查这个,我得到了正确的json响应。就我而言,我可以看到

  

[“债务长度无效”]

但这不会在任何地方呈现。

我还需要在视图中添加其他任何内容来呈现验证错误吗?它应该通过purr.js显示。除了将javascript文件放在我的公共目录中,我还需要做什么,在application.js中启动best_in_place并放入

<p>
  <b>Debts:</b>
  <%= best_in_place @prospect, :debts, :type => :input %>
</p>

在视图中?

3 个答案:

答案 0 :(得分:3)

您的问题听起来就像我的:在Railscast #302仔细检查,我注意到错误信息是打印但在页面的左下角,很难看到,很容易错过。

列出的purr CSS代码页面将格式化并在网页上更清晰地显示。

希望这有帮助。

答案 1 :(得分:2)

您应该添加正确的控制器操作

def update
  ..
  respond_to do |format|   
    format.json { render json: @prospect } 
  end
end  

或使用respond_with_bip帮助程序。并且不要忘记定义.purr CSS类,“Best In Place”gem使用jQuery Purr插件来显示错误消息:

.purr {
  position: fixed;
  top: 30px;
  right: 100px;
  width: 250px;
  padding: 20px;
  background-color: #FCC;
  border: solid 2px #C66;
  &:first-letter { text-transform: uppercase; }
}

答案 2 :(得分:1)

保重。在application.js中添加best_in_place.purr插件而不是jquery.purr。它对我有用。

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require best_in_place.purr
//= require best_in_place
//= require_tree .