2011-08-21 23 views
5

Rails 3.0.9でbest_in_place gemを使用しています。私はすべてが働いているようです。私はインストールの指示に従って、アイテムをクリックして編集し、ajaxを使ってすべてのスポットを保存することができました。best_in_place gemで検証エラーを表示できません

しかし、検証機能をテストしても偽データを入力すると、エラーメッセージは表示されません。

これはjavascriptによって魔法のように実行されるはずですか、エラーメッセージが表示されるdivタグなど何らかの種類のものを提供するはずです。

これをファイヤーバグでチェックすると、正しいjson応答が得られます。私の場合は、

[「債務無効な長さを持っている」]

を見ることができるが、これはどこにもレンダリングされません。

検証エラーを表示するためにビューに追加する必要があるものはありますか?それはpurr.jsを介して表示されるはずです。私は、私の公開ディレクトリにJavaScriptファイルを置く以外に何もする必要はapplication.jsにbest_in_placeを開始し、ビューで

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

を入れますか?

+0

これに関する回答が得られていないようです。誰も答えがない、あるいは私の質問が十分にはっきりしていない可能性が高い場合には、どうかと思います。私が提供しなければならない他の情報に対する提案は歓迎されます。 – Oscar

+0

コントローラの外観はどうですか?更新が失敗した場合に備えてrespond_with_bipを呼び出していますか? – rkb

答えて

3

Railscast #302で慎重に確認してください。エラーメッセージが印刷されていましたが、ページの左下に表示されていて見逃しがちです。

コードは、そのページがウェブページ上でより明確に書式設定されて表示されることを示しています。

これが役に立ちます。

2

はあなたが右のコントローラのアクション

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

を追加したり、代わりにrespond_with_bipヘルパーを使用する必要があります。そして.purrのCSSクラスを定義することを忘れないでください、「最高の場所で」宝石は、エラーメッセージを表示するには、jQueryのゴロゴロプラグインを使用しています。

.purr { 
    position: fixed; 
    top: 30px; 
    right: 100px; 
    width: 250px; 
    padding: 20px; 
    background-color: #FCC; 
    border: solid 2px #C66; 
    &:first-letter { text-transform: uppercase; } 
} 
+0

よろしくお願いいたします。 –

1

は注意してください。 application.jsのjquery.purrの代わりにbest_in_place.purrプラグインを追加してください。それは私のために働いた。

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