Невозможно отобразить ошибки проверки с гемом best_in_place - PullRequest
5 голосов
/ 21 августа 2011

Я использую гем best_in_place с Rails 3.0.9.Похоже, у меня все работает.Я следовал инструкциям по установке, и я могу щелкнуть элемент, отредактировать его и сохранить все в одном месте с помощью ajax.

Однако при тестировании функции проверки, но при вводе поддельных данных появляется сообщение об ошибке.не отображается.

Я не уверен, предполагается ли, что это должно быть сделано волшебным образом через javascript, или я должен предоставить какой-либо тег div или что-то, где может отображаться сообщение об ошибке.

Проверяя это в firebug, я получаю правильный ответ json.В моем случае я вижу

["Долги имеют недопустимую длину"]

, но это нигде не отображается.

Есть ли что-нибудь ещеМне нужно поставить в представлении, чтобы сделать ошибку проверки?Предполагается, что будет отображаться через purr.js.Нужно ли что-то делать, кроме того, чтобы поместить файлы javascript в мой публичный каталог, запустить best_in_place в application.js и поместить

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

в представление?

Ответы [ 3 ]

3 голосов
/ 15 февраля 2012

Ваша проблема звучит так же, как у меня: внимательно проверяя на Railscast # 302 , я заметил, что сообщение об ошибке печатается, но в левом нижнем углу страницы плохо видно и его легко пропустить.

Код purr CSS, указанный на этой странице, отформатирует и отобразит ее более четко на веб-странице.

Надеюсь, это поможет.

2 голосов
/ 31 июля 2012

Вы должны добавить правильное действие контроллера

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

или используйте помощник respond_with_bip. И не забудьте определить CSS-класс .purr, гем «Best In Place» использует плагин 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; }
}
1 голос
/ 05 февраля 2013

Береги себя.Добавьте плагин best_in_place.purr вместо jquery.purr в application.js.У меня это сработало.

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