0

私は Rails と Javascript の初心者です。Ryan Bates の Railscasts 196 & 197 (Nested Model Forms) に従って、ネストされた属性を持つアプリを作成しました。

チェックボックスを使用してフィールドを削除するまで、すべてが正常に機能します。しかし、_question_fields.html.erb でこれを使用すると:

<%= link_to_function 'remove', 'remove_fields(this)' %>

そして /assets/javascripts/application.js のこの JavaScript 関数:

function remove_fields(link) {
  $(link).previous("input[type=hidden]").value = "1";
  $(link).up(".fields").hide();
}

何も起こりません。<%= javascript_include_tag "application" %>含まれていることを確認しましたviews/layouts/application.html.erb

削除リンクをクリックすると、Firefox (Firebug) と Chrome (ビルトイン) の Javascript コンソールでこのエラーがスローされます。

Uncaught ReferenceError: $ is not defined 

非常に基本的なものが欠けていますか?どんな助けでも大歓迎です。Ruby 1.9.3、Rails 3.2.3、Mongoid 3.1.2 を使用しています。

4

1 に答える 1

0

さて、解決策は( bfavarettoによって指摘されたように)十分に単純でした。prototypegemを使用して、その参照を に追加する必要がありますapplication.js

1) にGemfile、次を追加します。

gem 'prototype-rails'
# You might want to comment out #gem 'jquery-rails'

2)application.jsで、何よりも、以下を追加します。

//= require prototype
//= require prototype_ujs
//= require effects
//= require dragdrop
//= require controls

3)次の行が削除/コメントされていることを確認してくださいconfig/enviroments/development.rb

#config.action_view.debug_rjs = true

4) Bundler を実行し、Rails Server を再起動します。

$ bundle install
$ rails s         # This is important!
于 2013-04-04T13:09:48.170 に答える