2011-06-25 44 views
0

我想在rails中構建我的第一個新動作,這要感謝這裏的人們的幫助,現在我已經得到絕大多數工作,但是由於我錯誤地理解了事情工作的行動是不執行所需的行動。在Rails 3的新動作中使用重定向

我有一個名爲Items數據庫,其中包含:id:external_url:click_count 我的目標是讓這時候點擊,用戶將被引導到外部URL和:click_count由1

遞增鏈接既然這樣,我有以下幾點: view

<%= link_to image_tag(item.picture.to_s + ".gif"), items_clickcountplusone_path(:id => item.id)%> 

items_controller

def clickcountplusone 
    clickeditem = Item.find(params[:id]) 
    redirect_to clickeditem.external_url if clickeditem.update_attribute(:click_count, clickeditem.click_count + 1) 
end 

routes.rb

get 'items/:id' => 'items#clickcountplusone', :as => :items_clickcountplusone 

使用此代碼,網頁本身加載所有可見的鏈接。 但是,當我點擊一個鏈接時,我被引導到items/whateveridiclickedon而不是外部URL,此外:click_count值不會從其初始值增加。

我是否正確地做到了這一點?特別是路線線路好,它目前看起來好像我指示它被引導到我的網站上的特定頁面的項目,這不是我的意圖......此外,什麼是錯誤的if聲明意味着計數不增加?

您的耐心

+0

試試這個嗎? '<%= link_to image_tag(item.picture.to_s +「.gif」),items_clickcountplusone_path(:id => item.id)%>' –

+0

我確實已經這樣做了 - 我只是意外刪除了它,它在那裏(我刪除了一個ALT描述,並且必須刪除太多)。但是非常感謝您的密切關注! – Texas

回答

1

的映射路徑"items/:id"非常感謝已與show行動相關聯,並具有優先權。

嘗試將其與另一個URL相關聯。

get 'items/:id/visit' => 'items#visit', :as => :items_visit 
+0

夢幻般的電話,非常感謝!立即修復它。 – Texas

+0

很高興幫助:) – tamersalama