6

application.js ファイルで jquery が必要になると、destroy アクションに互換性がないのはなぜですか? jqueryを無視せずに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

アプリケーション.js:

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

これら 2 つをコメントアウトするとすぐに、破棄アクションが再び機能します。コメントがない場合、削除リンクは show アクションを起動するだけです...どう思いますか?

4

3 に答える 3

3

そのため、アセット パイプラインはこれらのコメントに対して特別な処理を行います。フォームのコメントの存在

//= require jquery

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

これの結果は、必要なディレクティブがどのように機能するかを誤解していることです。コメント内でのみ機能します。コメント タグを削除すると、ライブラリが含まれなくなります。

于 2013-10-16T04:40:07.930 に答える
0

application.jsはマニフェスト ファイルであるため、構文にはこれらのコメントが含まれていると想定されます。http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directivesを参照してください

于 2013-10-16T04:42:40.923 に答える
0

ウェブサイトhttp://guides.rubyonrails.org/getting_started.htmlからコードをコピーして貼り付けた場合は、代わりに入力してみてください。

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

私はそれがどのように起こるか確信していますが、もう一度コピーして貼り付けるとうまくいきます。

于 2016-02-06T15:34:19.227 に答える