best_in_place gem来编辑货币

时间:2012-03-05 19:03:12

标签: ruby-on-rails-3.1

我正在使用best_in_place gem来编辑余额:

index.html.erb

<%= best_in_place bankaccount, :balance, :display_with => :number_to_currency %>

但在编辑之后,我得到一个未格式化的数字(45美元更改为46显示为46)。

如何获取best_in_place以将新值显示为$$$?

控制器:

 respond_to :html, :json
...
def update
    @bankaccount = Bankaccount.find(params[:id])
    if @bankaccount.update_attributes(params[:bankaccount])
      respond_with @bankaccount
    else
      render :json =>  @bankaccount.errors.full_messages, :status => :unprocessable_entity
    end
    # if @bankaccount.update_attributes(params[:bankaccount])
    #       redirect_to @bankaccount, :notice  => "Successfully updated bankaccount."
    #     else
    #       render :action => 'edit'
    #     end
  end

2 个答案:

答案 0 :(得分:2)

这个帖子已经回答了,但是我尝试了接受的答案但是没有用。

然而,使用lambda一切都很好。顺便说一下,R​​ails 4。

<%= best_in_place @text, :body, :type => :textarea, :display_with => lambda{ |v| markdown(v) }, :html_attrs => { :class => 'edit-text-body' }  %>

答案 1 :(得分:0)

使用BIP结束:display_as =&gt; :mk_bal,mk_bal在模型Bankaccount中定义为:

def mk_bal
    ActionController::Base.helpers.number_to_currency(self.balance, :precision => 2)
end