драгоценный камень best_in_place для редактирования валюты - PullRequest
3 голосов
/ 05 марта 2012

Я использую камень best_in_place для редактирования балансов:

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 ]

2 голосов
/ 19 февраля 2014

На эту ветку уже есть ответ, но я попробовал принятый ответ, и он не сработал.

Однако, используя лямбду, все снова хорошо.Рельсы 4, кстати.

<%= best_in_place @text, :body, :type => :textarea, :display_with => lambda{ |v| markdown(v) }, :html_attrs => { :class => 'edit-text-body' }  %>
0 голосов
/ 15 мая 2012

Завершается с использованием BIP: display_as =>: mk_bal с mk_bal, определенным в модели Bankaccount как:

def mk_bal
    ActionController::Base.helpers.number_to_currency(self.balance, :precision => 2)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...