0

Rails 3.0 アプリで動作する最適な gemを取得しようとしていますが、何も動作していないようです。オブジェクトをクリックして編集することができません。

これは私がこれまでに行ったことです (上記のリンクとRailsCastからの GitHub の指示に従ってください:

私の中でGemfile

gem 'rails', '3.0.11'
gem 'best_in_place', '~> 0.2.0'

私もrails g best_in_place:setup3.0 を使用していたので実行し、best_in_place.jsファイルを.xml に生成しましたpublic/javascripts

最後に、その場で編集するレコードを表示するには:

<div class="profileGains">"<%= best_in_place @project, :my_quote %>"</div>

私は RESTful ルートを使用しているのでupdate、プロジェクト リソースに対するアクションがあります。

この時点で、レコードが表示されますが、そのレコード (または他のレコード) をクリックできません。

助言がありますか?私はJSが初めてで、本当に行き詰まっています。

編集:application.js次のコードを追加したファイルを作成しました:

//= require jquery
//= require jquery.purr
//= require best_in_place

$(document).ready(function() {
  /* Activating Best In Place */
  jQuery(".best_in_place").best_in_place();
});

ビューに script タグを追加するために、Richlewis によるコメントの提案も試しました。

<script type="text/javascript" src="/public/javascripts/best_in_place.js"></script>

最後に、レイアウト ファイルを に変更<%= javascript_include_tag :defaults %>して みました。<%= javascript_include_tag :all %>application.html.erb

繰り返しますが、ベストインプレースは機能しません。

更新: Chrome を使用して要素を調べると、ログに次のエラーが表示されることがわかりました。

Uncaught TypeError: Object [object Object] has no method 'best_in_place' 
application.js line 7

これが何を意味するか分かりますか?

4

1 に答える 1

2

私がそれを理解したので、私自身の質問に答えます。このコードはアセット パイプラインを備えたアプリでのみ機能するbest_in_place.jsため、私のビューではファイルがレンダリングされませんでした。//= require best_in_place

best_in_place.jsアプリケーション レイアウト ファイルでファイルを明示的に宣言する必要がありました。それはトリックをしました。

于 2013-01-21T19:47:43.200 に答える