2017-11-30 16 views
0

私はこれに対していくつかの解決策を試しましたが、正しく動作させることはできません。 Railsに関するJordan Hudgensのチュートリアルに従っています。 スカフォールドを介して「ブログ」構造を生成し、当初はすべてが適切に機能していました。今は何が起こっているのか分かりません。 私はRails 5.1を使用しています。削除ボタンは、Rails 5.1の削除アクションではなく、表示アクションです。

「ブログを削除」ボタンを押すたびに、DELETEではなくGETアクションが使用されます。

サーバーコンソールを見ると、削除操作ではなく、表示操作であることがわかります。

Server console log

また、私は私のコードを見直し、すべてのエラーを見つけることができませんでした。実際に、私は問題を見つけるためにデバッグツールをどこに置くことができるのか分かりません。

_blog.html.erb

<%= link_to 'Deletar Post', blog, method: :delete, data: { confirm: 'Deseja confirmar a exclusão do post?' } %> 

blogs_controller.rb

def destroy 
    @blog.destroy 
    respond_to do |format| 
     format.html { redirect_to blogs_url, notice: 'Seu post foi excluído com sucesso.' } 
     format.json { head :no_content } 
    end 
    end 

はまた、私はルートが正しく設定されていると思います。

Blog routes

"削除" ボタンが動作していたので、私application.jsはまた

//= require rails-ujs 
//= require turbolinks 
//= require_tree . 
//= require jquery3 
//= require popper 
//= require bootstrap-sprockets 
//= require jquery_ujs 

ファイル、私は宝石

gem 'devise', '~> 4.3' 
gem 'bootstrap', '~> 4.0.0.beta2.1' 
gem 'jquery-rails' 
gem 'brunocruz_view_tool', '~> 0.1.0' 
gem 'petergate', '~> 1.8' 

としてjqueryのレールを持っているそれは、奇妙です正しく、私はしばらく前にそれをテストを停止しました。今私はそれを止めさせたものを見つけることができません。

また、コンソールでdestroyアクションを実行しようとしました。そしてそれは働いた。

Destroy action using rails console

私は、エラーを探しているのJavaScriptコンソールを実行しています。しかし、私は何も見つけることができませんでした。 (私は実際に正しい場所で探しています?)

In this test, I tried to run 2x this: click on "delete" button and then come back to blog index

私は完全にここに失われていますが。私はエラーを見つけるために他に何ができるのか分かりません。手伝ってくれませんか?第二のparam "ブログは" 私には奇妙思われること

<%= link_to 'Deletar Post', blog, method: :delete, data: { confirm: 'Deseja confirmar a exclusão do post?' } %> 

おかげで、

ブルーノ

+0

あなたのリンクに 'remote:true'は必要ありませんか? –

+0

あなたのレーキルートを表示できますか? –

答えて

0

私はへのあなたのリンクにあなたのパスのparamとの誤差があります信じています。それはblog_pathまたはblog_urlだろうと思います。それを試すことができますか?

0

この部分はコード内にありますか?あなたが彼に1つを与える必要があります削除するには、ブログを渡す。代わりに、ここにあなたが削除アクションへのパスをしたいとのIDを追加し、<%= link_to 'Deletar Post', blog, method: :delete, data: { confirm: 'Deseja confirmar a exclusão do post?' } %>

<% @pops.each do |pop| %> 
    #fields of pop, in your case is blog 
    <%= link_to 'Destroy', pop, method: :delete, data: { confirm: 'Are you sure?' } %> 
    #in the scaffold, the fields are generated inside a table, but it is not 
    #the line that passes a blog information that you want to delete, is 
    #each. understood? 
<% end %> 
0

私はあなたのコードを推測しているが.eachループ内で、「ブログ」が使用されている理由ですあなたは破壊したいアイテムです。あなたが多くの情報を提供しなかったので、ちょうどここを推測しています。

はあなたのルートは次のようになり場合:

resources :blogs, only: [:destroy] 

次に、あなたのパスがPROB、blog_pathであり、あなたはあなたのルートを見れば(私は通常はlocalhostに行く:3000 /ルートを見つけることができるすべてのルートを確認してくださいルートとそれが必要とするもの)

だから私は、それは次のようになりますと信じて:。

<%= link_to 'Deletar Post', blog_path(blog), method: :delete, data: { confirm: 'Deseja confirmar a exclusão do post?' } %> 

また、それはブログを削除することになっていた場合、ボタンの上にmissguiding名ではありませんか? :D

関連する問題