2011-06-25 8 views
0

私は最初の新しいアクションをレールで構築しようとしています。ここの人々の助けを借りて、私は今大多数の作業をしていますが、その動作は所望の動作を実行していない。Railsの新しいアクションでリダイレクトを使用する3

私は私の目標は、クリックされたときに、ユーザーが外部URLに向けられていると:click_countが1

インクリメントされたリンクを持つことです 、:idが含まれていItemsと呼ばれるデータベースを、持っている:external_url:click_count現状では、私は次があります。 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

試してみますか? " –

+0

私は実際にそれがすでに好きでした - 私はちょうど私が置くように偶然にそれを削除しました(訳注:それはそこに(私はaltの説明を削除していたとあまりにも多くを削除している必要があります)。しかし、とても綿密にチェックしてくれてありがとう – Texas

答えて

1

マッピングされたルート"items/:id"はすでにshowアクションに関連付けられていると優先順位を持っています。

別のURLに関連付けてみてください。

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

素晴らしいコール、ありがとう!すぐに修正しました。 – Texas

+0

うれしかった:) – tamersalama

関連する問題