2012-05-02 18 views
1

これを3日間稼働させようとしました。私はそれがなぜ機能しないのか理解しているようです。ユーザーがビュー上のlink_toタグをクリックすると、コントローラのcsv関数が実行されます。私は例外が発生すると尋ねる。ここでlink_toタグのルーティング/ URLマッピングが無効になっています


関連するファイルは

コントローラファイルです:(users_controller.rb)

def csv 

end 

(routes.rbを):

resources :users 

ビュー:(show.html .erb)

<%= link_to 'Click HERE to open file', @user.image.url %><br/><br/><br/> 
<%= label_tag(:q, "Parse CSV File:") %><br/> 
<%= link_to 'CSV', csv_user_path %> 
<% end %> 

私は上記の "link_to 'CSV' ..タグをクリックします。それは私に、この例外を与える:

http://localhost:3000/users/28 

そのは明らかに関数になってますが、URLマッピング/ルーティングが明確に台無しにされています

NameError in Users#show 
Showing /Users/AM/Documents/RailsWS/bmc_mam/app/views/users/show.html.erb where line #47 raised: 
Extracted source (around line #47): 

44:   
45: <%= label_tag(:q, "Parse CSV File:") %><br/> 
46: 
47: <%= link_to 'CSV', csv_user_path %> 
48:    
49:   
50:   

ブラウザのURLは、例外が発生したときに、次のようです。私はそれを修正する方法を疑問に思っています。私は過去数日間にいくつかのアプローチを試みましたが、誰も働いていないようです。 これは、それがで動作するようになった最も近いIveです...

おかげさまで、あなたの助けをありがとう。


は@Gavin Millerが下に掲載ポスト答えた後:

get 'csv' => 'users#csv' 
resources :users 

今、Imは、この例外を取得:

NameError in Users#show 

Showing /Users/AM/Documents/RailsWS/bmc_mam/app/views/users/show.html.erb where line #47 raised: 

undefined local variable or method `csv_user_path' for #<# <Class:0x00000104e7f6f8>:0x00000103a23c68> 

Extracted source (around line #47): 

44:   
45:    <%= label_tag(:q, "Parse CSV File:") %><br/> 
46:    
47:    <%= link_to 'CSV', csv_user_path %> 
48:    
49:   
50:   

答えて

1

私はこれまでの私のroutes.rbをファイルをcahnged

resources :usersを単に宣言すると、7つの標準RESTfulアクションが推測されます。

get 'csv' => 'controller#action' 

controller == usersaction == csvを:あなたはcsvルートとして受け入れられるようにしたい場合は、明示的に定義する必要があります。


編集した質問の再アドレスあなたはcsv_user_path関数にユーザーオブジェクトを渡す必要があります:

<%= link_to 'CSV', csv_user_path(@user) %> 
あなたは memberにとして、それを宣言することができますので、あなたは、URLがユーザに関連付けられていることがしたいようですがも表示されます

に見られるよう

resources :users do 
    member do 
    get 'csv' 
    end 
end 


RESTfulなアクションが index, new, create, show, edit, update, destroyです:あなたはこのコードを使用することができ、その結果に対して http://localhost:3000/users/28/csv:などのURLを取得 Rails Routing Guide

+0

恐ろしい男。それは働いた!!!!!!本当にありがとう!! 私は最後の2日間狂ってしまった!! – banditKing

+0

@ banditKingは完全に感情を知っています。 'rake routes'を実行すると、ルートから自動的に生成されるURLを見ることができます。左端の列には、 '_url'または' _path'をURLの最後に追加できる関数のリストがあります。 –

+0

あなたの場合、左側の列に 'csv_user'という値があることがわかります –

関連する問題