我花了幾天(如4)試圖解決這個問題。我遵循Hartl Rails 3教程,並在第12章嘗試將網站從原型轉換爲jQuery。我無法獲得「follow」/「unfollow」按鈕來更新。jQuery/Rails 3按鈕不會改變狀態
我能夠從Safari的Inspect Element Console中發出jQuery命令,但是如果我把最簡單的jQuery命令放到destroy.js.erb或create.js.erb文件中,什麼都不會發生。該日誌表明正在渲染適當的關係/ destry.js.erb(或create.js.erb)文件。
這裏是我有在控制器的代碼:
class RelationshipsController < ApplicationController
before_filter :authenticate
def create
@user = User.find(params[:relationship][:followed_id])
current_user.follow!(@user)
respond_to do |format|
format.html { redirect_to @user }
format.js
end
end
def destroy
@user = Relationship.find(params[:id]).followed
current_user.unfollow!(@user)
respond_to do |format|
format.html { redirect_to @user }
format.js
end
end
end
在使用者/ _follow.html.haml是
- relationship = current_user.relationships.build(:followed_id => @user.id)
= form_for(relationship, :remote => true) do |f|
= f.hidden_field :followed_id
.actions= f.submit "Follow"
在使用者/ _unfollow.html.haml是
- relationship = current_user.relationships.find_by_followed_id(@user)
- delete = { :method => :delete }
= form_for(relationship, :html => delete, :remote => true) do |f|
.actions= f.submit "Unfollow"
用戶/ _follow_form.html.haml是
- unless current_user?(@user)
#follow_form
- if current_user.following?(@user)
= render 'unfollow'
- else
= render 'follow'
的關係/ create.js.erb是
$("#follow_form").html("<%= escape_javascript(render('users/unfollow')) %>")
$("#followers").html('<%= "#{@user.followers.count} followers" %>')
的關係/ destroy.js.erb是
$("#follow_form").html("<%= escape_javascript(render('users/unfollow')) %>")
$("#followers").html('<%= "#{@user.followers.count} followers" %>')
然而,在試圖診斷這一點,我想一個很基本的
$("#title").html("Followed")
這也不起作用。
良好的捕捉,但即使在這種變化後問題仍然存在。任何其他想法?我可以做些什麼來幫助診斷? – humbledaisy 2011-06-01 23:28:17