2013-04-25 94 views
1

我正在努力爲用戶選擇一個圖像作爲圖像索引視圖(@image.each do |image|)的專輯封面。但是,爲了有效,單選按鈕必須跨越每個圖像。我能想到的唯一方法就是在@image.each do |image|循環中設置一個radio_button_tag。這不會實現form標記。單選按鈕問題ajax rails

我希望能夠將圖像表的:albumcover字段更改爲圖像的ID(獲得該部分)當單選按鈕被按下時。

我的企圖代碼如下。我在加載頁面時遇到此錯誤。

錯誤

undefined method `ajaxUpdate_admin_album_image' for #<#<Class:0x102450300>:0x1021e94b8>` 

的jQuery(images.js.erb)

$(function(){ 
    $('#albumcover_tag').bind('click', function(){ 
     $.ajax({ 
      type: 'PUT', 
      url: '<%= ajaxUpdate_admin_album_image(:admin, @album, @image) %>', 
      data: $('#albumcover_tag').val(), 
     }).success(function(){ 
      alert("success"); 
     }); 
    }); 
    $('.best_in_place').best_in_place(); 
}); 

路線

namespace :admin do 
    root :to => "dashboard#index" 
    resources :dashboard 
    resources :albums do 
     resources :images do 
      put :ajaxUpdate, :on => :collection 
     end 
    end 
    get "admin/album" 
    end 

控制器

def ajaxUpdate 
     @album = Album.find(params[:album_id]) 
     @image = @album.images.find(params[:albumcover]) 
     if @image.update_attributes(params[:image]) 
      flash[:notice] = "Successfully updated Image" 
     else 
      render "edit" 
     end 
    end 

查看

<% if [email protected]? %> 
    <% @images.each do |image| %> 
     <div class="item"> 
      <div class="image-box"> 
       <div class="source"> 
        <%= image_tag image.source %> 
       </div> 
      </div> 
      <div class="info"> 
       <div class="item-links"> 
        <%= link_to "Edit", edit_admin_album_image_path(@album, image.id), :id => "edit"%> 
        <%= link_to "Delete", 
         admin_album_image_path(@album, image.id), 
         :class => "item-link delete-image", 
         :method => :delete, 
         :remote => true, 
         :confirm => "Are you sure?" %> 
       </div> 
       <%= label(:albumcover, 'Set as Album Cover ', :style => "float: left;") %> 
       <%= radio_button_tag (:albumcover, image.id, false, :id => :albumcover_tag) %> //The Relevant Code 
      </div> 
     </div> 
     <% end %> 
    <% else %> 
     <p class="alert">No images in this album</p> 
    <% end %> 

任何幫助將不勝感激!

+0

我覺得應該是** ** ajaxUpdate_admin_album_image_path在你的js代碼 – 2013-04-25 22:50:42

+0

同樣的錯誤:/ ... – 2013-04-25 22:55:18

+0

你可以在您的終端中執行** rake routes **並找到方法 – 2013-04-25 23:00:00

回答

0

要調用URL或PATH幫助程序,您必須在路由名稱中附加_url_path。我認爲你的路由設置方式,你不需要:admin說法:

# images.js.erb 
$.ajax({ 
    type: 'PUT', 
    url: '<%= ajaxUpdate_admin_album_image_url(@album, @image) %>', 
    data: $('#albumcover_tag').val(), 
}).success(function(){ 
    alert("success"); 
}); 
+0

這仍然會產生相同的錯誤。我應該以不同的方式路線嗎?從嵌套url(http:// localhost:3000/admin/albums/1/images)中調用它是否會影響結果? – 2013-04-26 02:15:43

+0

不,它應該沒有關係......你可以發佈你整個錯誤跟蹤。當您使用該方法加載頁面或單擊該頁面時,會顯示錯誤。如果你得到**相同的**錯誤,你可能在代碼中的其他地方以錯誤的方式使用了助手? – Vapire 2013-04-26 08:15:34

+0

我在頁面加載時發生錯誤,所以我甚至沒有機會嘗試鏈接。我需要改變路線嗎? – 2013-04-26 18:24:40