で動作しません。フィールドからタブを外したときに動作するはずです。ここにはそのスクリーンショットがありますクライアント側の検証は、これは私の<code>User</code>モデルである生産で動作しますが、開発
をしかし、私は生産にそれを行う際に、それがすべてでは動作しませんし、私は、ログファイルやJSコンソールにエラーが表示されない:ローカルでの作業。
編集1:
検証メッセージが表示されません。私が「有効」のメールアドレス試みるたびHerokuのログで
は、私はこれを参照してください。
2012-06-10T18:44:55+00:00 app[web.1]: Started GET "/validators/uniqueness?case_sensitive=false&user%5Bemail%5D=abc%40tell.com" for xx.xxx.xx.x2 at 2012-06-10 18:44:55 +0000
2012-06-10T18:44:55+00:00 heroku[router]: GET myapp.heroku.com/validators/uniqueness?case_sensitive=false&user%5Bemail%5D=abc%40tell.com dyno=web.1 queue=0 wait=0ms service=221ms status=404 bytes=4
をしかし、それがローカルにないように、それは私のページに私にメッセージを表示しません。
また、「有効な」電子メール構造(たとえば、[email protected]
)を持つ文字列を試してみると、ログのHTTP要求が表示されることがわかります。しかし、私がabc
のようなものを試してみると、それは私に期待するメッセージを与えません - invalid address
- ログに何も表示されません。
編集2:
私はproduction mode
に私のローカルサーバを実行しようと、私はHerokuの上と同じ問題を見ています。だから、問題はHerokuとは関係ないかもしれないが、むしろ生産だと思われる。
<form accept-charset="UTF-8" action="/users" class="formtastic user" data-validate="true" id="user_new" method="post" novalidate="novalidate"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="kQid^%&^%jhgdsjhgfxmw4=" />
<input data-validate="true" id="user_email" input_html="{:autofocus=>true}" name="user[email]" placeholder="[email protected]" size="30" type="text" />
<input label="Submit" name="commit" type="submit" value="Sign Me Up!" />
</form><script>window['user_new'] = {"type":"Formtastic::FormBuilder","inline_error_class":"inline-errors","validators":{"user[email]":{"presence":{"message":"can't be blank"},"uniqueness":{"message":"has already been taken","case_sensitive":false},"format":{"message":"is invalid","with":/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,"allow_blank":true}}}};</script> </div>
編集3:
これは私application.jsがどのように見えるかです:
この
は、製造時にフォームから生成されたHTMLである//= require jquery
//= require jquery_ujs
//= require rails.validations
//= require_tree .
そして、中に私のapplication.html.erb
レイアウトファイル私はapplication.jsへのJS呼び出しを持っています
編集4:
私はそれはidがuser_email
ないuser[email]
あるのでclient_side_validation
によって生成されたJSのスクリプトが入力を認識していない状況であったかもしれないと思いました。だから私はuser[email]
への入力のid
を変更し、それを解決しませんでした。
誰でも意見はありますか?
あなたはFirebugのか、Webインスペクタを使用してWebページをロードし、1つが、ここでエラーを投稿することができますか?それは正しく動作していないjsコードかもしれません。 –
また、AJAX呼び出しの応答を読んでみることもできます(希望のデバッグツールで要求/応答のログを有効にする)。プロダクションでコントローラのレスポンスが変化するかもしれませんが、バックエンドではなくjsの問題になりそうです。 –
@lexor普通のものを見つけることができませんでしたが、Firebugをあまり使わないので、何か不足している可能性があります。ここには生産版http://falling-sunset-7904.herokuapp.com/があります。 'abc'とタブアウトを入力すると、本番では '無効です'と表示されます。 Firebugでは、jQueryの情報がロードされているのを見ています... soo ...何が起こっているのかわかりません。 – marcamillion