2012-07-17 30 views
3

我跟隨瑞安貝茨'railscast上最好的地方寶石,但無法讓它正常工作。我在user.rb模型中設置了before_create的默認值顯示在頁面上,但我無法點擊它進行編輯;它只是顯示爲一個靜態元素。雖然,Firebug顯示best_in_place JavaScript正在加載視圖<head>Rails最好的地方寶石

的application.js

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require jquery-ui 
//= require jquery.purr 
//= require best_in_place 
//= require_tree . 

users.js.coffee

jQuery -> 
    $('.best_in_place').best_in_place() 

user.rb

attr_accessible :email, :name, :password, :password_confirmation, :avatar, :goal 
... 
before_create :default_values 
... 
    private 

    def default_values 
     self.goal ||= "Write Current Goal Here" 
    end 

users_controller.rb

respond_to :html, :json 
... 
    def update 
    @user = User.find(params[:id]) 
    respond_to do |format| 
     if @user.update_attributes(params[:user]) 
     format.html { 
      flash[:success] = "Profile updated" 
      sign_in @user 
      redirect_to @user 
     } 
     format.json { respond_with_bip(@user) } 
     else 
     format.html { render 'edit' } 
     format.json { respond_with_bip(@user) } 
     end 
    end 
    end 

用戶/ show.html.erb

... 
<%= best_in_place @user, :goal %> 
+0

瀏覽器控制檯上的任何錯誤?嘗試點擊它,即使你沒有看到動畫 – 2012-07-17 15:50:55

+0

嘗試點擊無濟於事。實際上有一個錯誤。控制檯說: '$(「。best_in_place」)。best_in_place不是一個函數' – railser 2012-07-17 15:57:24

+0

只需要所需文件的順序 – 2012-07-17 15:59:31

回答

2

在你的佈局/ application.html.erb ..而不是javascript_include_tag(:all)

javascript_include_tag(:application) 

同時,確保users.js.coffee生活app/assets/javascript

編輯

確保您擁有第Ë寶石在Gemfile中指定的和捆綁安裝

gem "best_in_place" 

試試這個,好像說Kaldybaev建議

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require jquery-ui 
//= require jquery.purr 
//= require_tree . 
//= require best_in_place 

然後,而不是咖啡在頁面的頂部做到這一點:

$(document).ready(function() { 
    $('.best_in_place').best_in_place(); 
}) 

如果不行,請刪除//= require best_in_place//= require jquery.purr然後運行

rails g best_in_place:setup 
+0

它目前設置爲:'<%= javascript_include_tag「應用程序」%>' 'users.js.coffee'文件位於'app/assets/javascript ' – railser 2012-07-17 16:13:22

+0

ohh,希望有幫助,乾杯))) – 2012-07-17 16:34:39

+0

謝謝!我用腳本 ' ' ''(')'{' '$('。best_in_place')best_in_place()替換了咖啡DOM調用。工作: '$(document).ready(function(){' ''('。best_in_place')。best_in_place();' '})' – railser 2012-07-17 16:35:40

1

我也有同樣的問題,通過移動要求best_in_place在2002年底解決了要求列表

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require jquery-ui 
//= require jquery.purr 
//= require_tree . 
//= require best_in_place 
+0

嘗試將best_in_place移動到底部但它仍然不起作用:/ – railser 2012-07-17 16:04:15

+0

你運行rails g best_in_place:setup? – 2012-07-17 16:09:39

+0

不,我認爲我沒有必要,因爲我手動編輯的JavaScript文件,瑞安建議。我應該嘗試用當前編輯的文件運行它還是撤消我先做的更改然後運行setup cmd? – railser 2012-07-17 16:11:44

1

這個工作對我來說:

變化

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

$(document).ready(function() { 
+0

您的評論沒有正確格式化? – snowangel 2013-03-23 14:44:05