2016-05-20 7 views
0

私はインライン編集にbest_in_place_ifを使用しています。ここでは、best_in_placeのajax successイベントを使用して編集された現在の要素のIDを取得します。Rails 3 best_in_place_if要素に "id"属性を追加する方法

以下はコードスニペットです。私はid属性を追加しようとしています。しかし、htmlを調べると、id属性の値はbes_in_placeによって生成されたデフォルト値です。彼らの文書によれば、デフォルト値は独自の値を提供することで変更できると述べています。

id属性のデフォルト値は、ID =「best_in_place_trip_32_is_active」として示されており、私が欲しいさは、私が行方不明です何を教えてください32

best_in_place_if(current_user.admin,trip,:is_active, :type => :checkbox, :classes => 'trip_disable', :id => trip.id) 

= IDのみです。

+0

あなたは何を達成しようとしていますか?私はこの質問に答えることはできませんが、best_in_placeを頻繁に使用しているので、おそらくあなたの問題を解決するのに役立つでしょう。 – bkunzi01

答えて

1

まず、要素の数値のみのID属性を使用しないでください。このviolates the HTML specs

その後、成功コールバックで現在編集レコードのidにアクセスするには、データ属性の代わりににレコードidを追加することができます。このようなものが動作するはずです:

# adding the record ID to the data attribute 
best_in_place_if(current_user.admin, trip, :is_active, :as => :checkbox, :class => 'trip_disable', :data => { :id => trip.id }) 

# accessing the record ID in the success calback 
$('.best_in_place.trip_disable').bind("ajax:success", 
         function(){ 
          alert('Record ID is '+$(this).data('id')); 
         }); 

詳細については、Best in place docsを参照してください。

+0

ありがとう、これは働いた。 –

関連する問題