私はRailsの初心者であり、ルーティングのバグのように見えます。
Webサイトとそのクロール方法に関する情報を保持するSiteオブジェクトがあります。コードとサイトへの接続をテストしたいと思います。アプリで「テストサイト」をクリックすると、エラーが発生します。
Couldn't find Site without an ID app/controllers/sites_controller.rb:86:in `test_site'
ルート.rb:
...
post "/test_site" => "sites#test_site"
get "home/index"
resources :sites, :logins
...
index.html.erb
...
<% @sites.each do |site| %>
<tr>
<td>
<%= form_tag test_site_path(site) do -%>
<div><%= submit_tag 'Test site' %></div>
<% end -%>
...
sites_controller.rb
...
def test_site
@site = Site.find(params[:id])
...
Sitesコントローラーがtest_site_path(site)からSite:idを取得していないようです。ルートを設定してIDを正しく渡す方法がわかりません。
ありがとう!
編集:このコードをroutes.rbに追加してみました:
resources :sites do
get "/test_site", :action => "test_site", :on => :member
end
このエラーが発生します:
No route matches {:controller=>"sites", :action=>"test_site", :format=>#<Site id: 11, ...
私は何を間違っているのでしょうか?