2013-10-16 7 views
6

jqueryがapplication.jsファイルで必要になると、破壊操作はどのように互換性が失われますか?あなたはjqueryを無視しないで破壊操作を再び働かせるにはどうしますか?rails 4、link_to jquery、jquery_ujsが必要なときにdestroyアクションで動作しない

ポスト・インデックス・ビュー:

h1 Blog 
- @posts.each do |post| 
h2 = link_to post.title, post 
p = post.content 
p = link_to 'Edit', edit_post_path(post) 
p = link_to 'Delete', post, data: {confirm: "Are you sure?"}, method: :delete 
br 

p = link_to 'Add a new post', new_post_path 

はポストコントローラにアクションを破壊する:

def destroy 
@post = Post.find params[:id] 
@post.destroy 

redirect_to posts_path, :notice => "Your post has been deleted" 
end 

application.js:

= require jquery 
= require jquery_ujs 
//= require turbolinks 
//= require_tree 

をできるだけ早く私は破壊するアクションアウトそれら二つをコメントとして再び働く。コメントがなければ、リンクを削除するだけでショーアクションが起こります...あなたの考えは?

+0

では、代わりにbutton_toメソッドを使用して解決策を見つけました(http://stackoverflow.com/questions/8726534/rails-3-1-link-to-not-showing-confirmation-or-destroying-properly)。 link_toより。 button_toを使用すると、javascriptを有効にせずにput、post、およびdeleteを使用してフォームを作成できます。 –

+0

ボタンの代わりに 'data-method = delete'を使用することもできます(必要に応じてさらにスタイルを設定する必要があるかもしれません) –

答えて

3

したがって、アセットパイプラインはこれらのコメントで特別なことを行います。フォーム

//= require jquery 

のコメントの存在は、アプリケーションのクライアントにまで務めてapplication.jsを構築するときに、そのファイルが含まれるようにプリプロセッサに指示します。コメントを削除すると、この動作が削除されます。その結果のライブラリは、アプリケーションによって提供された最終アプリケーションにコンパイルされません。

これは、必要な指令の仕方を誤解しているということです。コメント内でのみ動作します。コメントタグを削除すると、ライブラリを含めて停止します。

0

http://guides.rubyonrails.org/getting_started.htmlのコードをコピーして貼り付けた場合は、代わりに入力してください。

空白でない可能性のある先頭の「空白」をすべて削除します。 どういうわけか私はascii 32(空白文字)の代わりにascii 160を得ました。

どうしたらいいのでしょうか。コピーして貼り付け直しても問題ありません。

関連する問題