わかりました、これについて助けが必要です。非標準のアクションでリソースを定義しました。では次のようになりconfig/routes.rb
ます。
1 Upload::Application.routes.draw do
2
3 resources :lib_imports, :only => [:index, :new, :create, :show] do
4 get 'reimport', :on => :member
5 end
...
走っていると予想通りのルートが見えるrails routes
$ rake routes
reimport_lib_import GET /lib_imports/:id/reimport(.:format) {:action=>"reimport", :controller=>"lib_imports"}
lib_imports GET /lib_imports(.:format) {:action=>"index", :controller=>"lib_imports"}
new_lib_import GET /lib_imports/new(.:format) {:action=>"new", :controller=>"lib_imports"}
edit_lib_import GET /lib_imports/:id/edit(.:format) {:action=>"edit", :controller=>"lib_imports"}
lib_import GET /lib_imports/:id(.:format) {:action=>"show", :controller=>"lib_imports"}
...
LibImport モデルのインデックス ビューで名前付きルート「reimport_lib_import」を使用しようとしています。そのindex.html.erb
一部は次のようになります。
...
10 <% @lib_imports.each do |lib_import| %>
11 <tr>
12 <td><%= lib_import.spreadsheet %></td>
13 <td><%= link_to 'Show', lib_import %></td>
14 <td><%= link_to 'Re-import', reimport_lib_import %></td>
15 </tr>
16 <% end %>
...
ただし、その結果、ブラウザにエラーが表示されます。エラーの関連部分は次のとおりです。
Showing /home/mike/rails_projects/experiments/upload/app/views/lib_imports/index.html.erb where line #14 raised:
undefined local variable or method `reimport_lib_import' for #<#<Class:0x007fa938a06778>:0x007fa938950720>
Extracted source (around line #14):
11: <tr>
12: <td><%= lib_import.spreadsheet %></td>
13: <td><%= link_to 'Show', lib_import %></td>
14: <td><%= link_to 'Re-import', reimport_lib_import %></td>
15: </tr>
16: <% end %>
17: </table>
私の質問はこれです: Rails を使用しようとすると、なぜ Rails が文句を言うのreimport_lib_import
ですか? 前の路線では問題なく通過しているのに、この路線ではつまずくという事実に、lib_import
私はかなり戸惑いました。何かアイデアはありますか?