ruby on rails best_in_place gem字段名称更改错误显示

时间:2012-08-19 19:59:37

标签: ruby-on-rails error-handling best-in-place

所以我设置了 best_in_place gem [https://github.com/bernat/best_in_place],但是当我尝试编辑的列看起来像title_name并且发生错误时,我遇到了一个小问题它喜欢

'title_name can't be blank,is too short (minimum is 1 characters)'

我想编辑gem处理错误显示的方式,因此它会将_替换为space,并且可能会让它变得有点user-friendly

修改

检查响应我通过 Firebug 获取:

{"title_name":["can't be blank","is too short (minimum is 1 characters)"]}

宝石演示中的位置 http://bipapp.heroku.com/users/59

["Last name has invalid length","Last name can't be blank"]

有点不同......

EDIT2:

post.rb

class Post < ActiveRecord::Base
  attr_accessible :post_id, :title_name, :total_items, :user_id

  validates :title_name, :presence => true, :length => { :in => 1..50 }

  belongs_to :user, :foreign_key => 'post_id'

  self.primary_key = :post_id

  def to_param
    "#{post_id}"
  end
end

2 个答案:

答案 0 :(得分:0)

这实际上非常简单,与 best_in_pace gem没有任何关系。

使用以下命令修改文件 config / locales / en.yml

en:
  activerecord:
    models:
      attributes:
        post:
          title_name: 'Title name'

现在,属性title_name应替换为视图中的字符串'Title name'

注意:上面列出的方法会覆盖默认值,设置默认值。

答案 1 :(得分:0)

解决方案:

我发现best_in_place gem使用以下方法显示保存未完成时的错误

respond_with_bip(@user

附加到format.json

format.json { respond_with_bip(@user) }

所以用这个代码替换我通过json显示错误的方式解决了这个问题。