2011-08-10 49 views
1

我試圖在編輯帳戶頁面中使用「添加用戶頭像」鏈接爲用戶個人資料添加頭像。「Template is missing」錯誤使用jQuery與Rails

這是avatars_controller.rb:

def new 
    @avatar = Avatar.new 

    respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @avatar } 
    format.js 
    end 
end 

def create 
    @avatar = @user.avatars.create(params[:avatar]) 
    respond_to do |format| 
    if @avatar.save 
     format.html { redirect_to(edit_account_path, :notice => 'Avatar was successfully created.') } 
     format.xml { render :xml => @avatar, :status => :created, :location => @avatar } 
     format.js 
    else 
     format.html { render :action => "new" } 
     format.xml { render :xml => @avatar.errors, :status => :unprocessable_entity } 
     format.js 
    end 
    end 
end 

這是我的鏈接:

<%= link_to "add a new avatar", new_avatar_path%> 

路線:

resources :avatars 
resources :users do 
    resources :avatars 
end 

的意見/化身/ create.js.erb:

alert('whoaaa!!!') 

我使用的鐵軌3.0.9和獲得:

模板丟失

缺少模板化身/新與{:處理器=> [:ERB,:RJS,:建設者, 「/ home/ugur/rails_projects/deneme/app/views」中查看路徑 :rhtml,:rxml],:formats => [:html],:locale => [:en,:en]/home/ugur/rails_projects/deneme/app/views「, 」/ home/ugur/rails_projects/deneme/flag_promotions/app/views「, 」/home/ugur/.rvm/gems/ruby-1.9.2- p180/gems/spree-0.60.1/app/views「, 「/home/ugur/.rvm/gems/ruby-1.9.2-p180/gems/spree_sample-0.60.1/app/views」, 「/home/ugur/.rvm/gems/ruby-1.9.2 -p180/gems/spree_promo-0.60.1/app/views「, 」/home/ugur/.rvm/gems/ruby-1.9.2-p180/gems/spree_dash-0.60.1/app/views「, 「/home/ugur/.rvm/gems/ruby-1.9.2-p180/gems/spree_api-0.60.1/app/views」, 「/home/ugur/.rvm/gems/ruby-1.9.2- p180/gems/spree_auth-0.60.1/app/views「, 」/home/ugur/.rvm/gems/ruby-1.9.2-p180/gems/devise-1.3.3/app/views「, 」 /home/ugur/.rvm/gems/ruby-1.9.2-p180/gems/spree_core-0.60.1/app/views「

我即將發瘋。請幫忙。

+0

你有一個 '編輯' 的方法?您鏈接到edit_avatar_path。不要create_avatar_path – Bjoernsen

回答

2

您正在調用edit操作並希望create模板被呈現。這纔是重點。

鑑於您的輸出,我猜0123Å行動是呈現new.js.erb模板不存在。


變化:

<%= link_to "add a new avatar", new_avatar_path%> 

有:

<%= link_to "add a new avatar", new_avatar_path, :remote => true %> 

實際上使Ajax請求。


硒我在這裏承諾:https://github.com/apneadiving/avatars/commit/f88ebf3f65e2ad88176cd28f09fd9dc91448cb98

它工作在網址/avatars

+0

@macfan_:有何評論?不要忘記接受一個答案,如果它適合 – apneadiving

+0

對不起,我發佈了錯誤的鏈接。它被糾正了。請看一看。 –

+0

好吧,但同樣的結論:你叫新的行動,所以部分應該是new.js.erb – apneadiving