2017-09-08 8 views
1

私はウェブサイトから製品を掻き集め、自分のDBに挿入しました。すべての製品が[表示]ページに正しく表示されていますが、削除ボタンが機能しないようです。ルートの一番上に、それはしなかった:リピートは私のすくいルートである理由は、私が最初に手動でルートを書きましたが、その後、私はちょうど「ibottaリソースを」移動しようとした個々のデータを削除するボタン。

resources :ibotta 

を使用したことです作業。私は「破棄」ボタンをクリックすると、それは私を取るのリンクは

https://rails-tutorial2-chriscma.c9users.io/ibotta.14738」すべてのヘルプははるかに高く評価されて

、おかげでします。

ビューコントローラで

<h1>Show Page for iBotta</h1> 

<h3><%= @products.length %> products in the iBotta DB</h3> 

<% @products.each do |x| %> 
    <p>Title: <a href=<%=x.link%>><%= x.title %></a> </p> 
    <p>Value: <%= x.values %> </p> 
    <p>Store: <%= x.store %> </p> 

    <%= link_to 'Destroy', ibotta_path(x.id), 
       method: :delete %> 

<% end %> 

方法

def destroy 
    Ibotta.find(params[:id]).destroy 
    redirect_to ibotta_path 
end 

レーキルート

   ibotta_save GET /ibotta/save(.:format)     ibotta#save 
       ibotta_show GET /ibotta/show(.:format)     ibotta#show 
      ibotta_delete GET /ibotta/delete(.:format)     ibotta#delete 

        ibotta GET /ibotta(.:format)      ibotta#index 
          POST /ibotta(.:format)      ibotta#create 
       new_ibottum GET /ibotta/new(.:format)     ibotta#new 
      edit_ibottum GET /ibotta/:id/edit(.:format)    ibotta#edit 
        ibottum GET /ibotta/:id(.:format)     ibotta#show 
          PATCH /ibotta/:id(.:format)     ibotta#update 
          PUT /ibotta/:id(.:format)     ibotta#update 
          DELETE /ibotta/:id(.:format)     ibotta#destroy 

答えて

1

は自分OBJECを渡して試してみてくださいtとDELETE要求を行うには、deleteメソッドを使用するには、のように:aタグを作成する場合には

<% @products.each do |product| %> 
    <p>Title: <%= link_to product.title, product.link %></p> 
    <p>Value: <%= product.values %></p> 
    <p>Store: <%= product.store %></p> 

    <%= link_to 'Destroy', product, method: :delete %> 
<% end %> 

、あなたはlink_to Railsのヘルパーを使用することができます。


私はあなたのプロジェクトで見たように、あなたがレンダリングすべてがこのファイルにyieldで渡していない、とあなたはあなたのアプリケーションには何も添加しないていない理由です、layouts/application.html.erbファイルを持っていません。 jsまたはcssファイルを使用しているため、jQueryまたはjQuery UJSはありません。これは、アンカータグをクリックするたびに、使用するメソッドを指定しているかどうかに関わらず、そのような要素を削除してGET要求を実行するたびに行われます。

これは、初期構造で、任意のプロジェクトと同様に、フォルダやファイルを追加することによって解決することができます。

<!DOCTYPE html> 
<html> 
<head> 
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    <%= csrf_meta_tags %> 
</head> 
<body> 
    <%= yield %> 
</body> 
</html> 

注意あなたがそれを行うならば、あなたはjavascripts/ibotta.coffeeでコンテンツをコメントする必要がある、そうでなければ、

SyntaxError: [stdin]:6:8: unexpected @

そして私はなぜそれがわかりません。あげる何

<%= button_to 'Destroy', x, method: :delete %> 

:よう

それとも、(私はお勧めしません)このファイルをせずに続行することを好む場合、あなたは簡単にだけbutton_toヘルパーのために、あなたのlink_toヘルパーを変更することができ、異なるHTML構造TOUが、レコードを削除するに動作します:あなたのresources ROUで使用されている、あなたのコントローラで破壊し、削除する方法を持っている

<form class="button_to" method="post" action="/ibotta/id"> 
    <input type="hidden" name="_method" value="delete"> 
    <input type="submit" value="Destroy"> 
    <input type="hidden" name="authenticity_token" value="token"> 
</form> 

注、私はあなたが必要とする1がdestroyだと思い、テス。

Hereは、動作することがわかるリポジトリです。

+0

私は例を少し変更して表現力豊かにしましたが、ここでは'@products.each do | x | 'を使っていますので、' <%= link_to 'Destroy' x、メソッド::delete%> ' –

関連する問題