だから私はそれにタブナビゲーションを持つユーザープロファイルを持っています:
<div id="proftab">
<ul class="nav nav-tabs">
<li class="active">
<%= link_to "About", about_users_path, :remote => true, :data => {:toggle=>"tab"} %>
</li>
<li><%= link_to "Pictures", pictures_users_path, :remote => true, :data => {:toggle=>"tab"} %></li>
</ul>
</div>
<div class="row">
<div id="profile" class="span9">
</div>
</div>
Ajax に特定のパーシャルをレンダリングさせることができました。ここで、タブをクリックすると、パーシャルがターゲット プレースホルダー div に読み込まれます。しかし、私の問題は、どのパーシャルがレンダリングされたかに応じて、タブリスト項目がアクティブなクラスを変更しないことです。これを修正する方法が本当にわかりません。
リンクまたはIDに関係があると思います。ブートストラップ ドキュメントのようにタブを作成すると (div が非表示および表示されます)、完全に機能します。しかし、どういうわけかパーシャルを正しく処理できないと思います。誰かが私を助けてくれることを願っています!どうも!
ルート.rb
get "users/about" => 'users#about', :as => :about_users
get "users/pictures" => 'users#pictures', :as => :pictures_users
users_controller.rb
class UsersController < ApplicationController
before_filter :authenticate_user!
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
def about
respond_to do |format|
format.js
end
end
def pictures
respond_to do |format|
format.js
end
end
end
ビュー/ユーザー/about.js.erb
$("#profile").html("<%= escape_javascript(render(:partial => 'about')) %>");
ビュー/ユーザー/pictures.js.erb
$("#profile").html("<%= escape_javascript(render(:partial => 'pictures')) %>");
ビュー/ユーザー/_about.html.erb
<div class="tab-pane active" id="#about">
about
</div>
ビュー/ユーザー/_pictures.html.erb
<div class="tab-pane active" id="#pictures">
pictures
</div>
tabs.js
$('#proftab a').click(function (e) {
e.preventDefault();
$(this).tab('show');
})