我正在使用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
答案 0 :(得分:2)
这个帖子已经回答了,但是我尝试了接受的答案但是没有用。
然而,使用lambda一切都很好。顺便说一下,Rails 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