這裏是通過劫持他們的行爲與jQuery風格的錨點工作的步驟。
在視圖中,可以稱之爲index.html.erb
通過使用正常link_to
助手把一些錨用特殊ID或類 - 通過使用資源路由例如鏈接到用戶控制器的show
行動:
# in index.html.erb
<%= link_to 'First user', user_path(1), class => 'ajax_link' %>
<div id='some_container'>
to modify via javascript.
</div>
第二步 - 使控制器能夠在javascript回答:
# in users_controller.rb
def show
@user = User.find(params[:id])
respond_to do |wants|
wants.html
wants.js
end
end
下一個 - 創建相應js.erb文件,在這種情況下,將users/show.js.erb
,並盡一切你的JavaScript魔術就在這裏。
# show.js.erb
alert('ajax answers!');
$('#some_container').html('hey this works great');
$('#some_container').after("<%= @user.name %>");
請注意,該erb代碼必須放在雙引號中。
而現在,在最後一步,劫持與jQuery的鏈接,在application.js
文件像這樣:
# in application.js
$(document).ready(function() {
$(".ajax_link").live("click", function() {
$.getScript(this.href);
return false;
});
}
這很簡單:如果你的文檔被完全加載,所有的節點與「ajax_link」級被劫持並且點擊事件getScript
從anchor href屬性中指定的url獲取javascript答案。
順便說一句:如果javascript被禁用,這也可以正常工作。
希望這會幫助你,如果你有任何問題不要猶豫,問! ;)
感謝您的幫助。不過,我仍然遇到同樣的問題。我將發佈我的代碼作爲下面的答案.. – ibuck 2009-09-10 15:37:23