Rails 3.2.6アプリケーションにチェック・メールの検証を追加しました。 RAILS_ENV = production railsのエラーを表示する、Rails 4.2.6のアプリケーションに同じものを追加しました。 Rails 4.2.6で「変更時」イベントやルート宣言に変更はありますか? を助けてくださいこれは私が直面していますエラーです: actionpack(4.2.6) のlib/action_dispatch /ミドルウェア/ debug_exceptions:ActionController :: RoutingError([GET] "/ checkemail"と一致するルートはありません)
ActionController :: RoutingError(Noルートの試合は "/のcheckEmail" [GET]を) .rb:21:in
call'
'
actionpack (4.2.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in
rat/rails/rack/logger.rb:38:call_app' railties (4.2.6) lib/rails/rack/logger.rb:20:in
ブロック内のブロック' activesupport (4.2.6)lib/active_support/tagged_logging.rb: 68:block in tagged'
でタグ付き 'activesupport(4.2.6) lib/active_support/tagged_logging.rb:68:
activesupport (4.2.6) lib/active_support/tagged_logging.rb:26:intagged' railties (4.2.6) lib/rails/rack/logger.rb:20:in
で' actionpack(4.2.6)(1.6.4)lib/rack/lockを呼び出してください。これは、「ラック(1.6.4)lib/rack/lock」と呼ばれています。 rb:17:incall' actionpack (4.2.6) lib/action_dispatch/middleware/static.rb:120:in
(1.6.4)lib/rack/sendfile.rb:113:call' railties (4.2.6) lib/rails/engine.rb:518:in
の場合 'railties(4.2.6) lib/rails/application.rb:165:call' railties (4.2.6) lib/rails/railtie.rb:194:in
public_send' (4.2.6) lib/rails/railtie.rb:194:method_missing' passenger (5.0.30) src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb:97:in
process_request 'パッセンジャー(5.0.30) src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb:152:accept_and_process_next_request' passenger (5.0.30) src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb:113:in
main_loop' passenger(5.0。 30) src/ruby_supportlib/phusion_passenger/request_handler.rb:416: のblock (3 levels) in start_threads' passenger (5.0.30) src/ruby_supportlib/phusion_passenger/utils.rb:113:in
ブロックeate_thread_and_abort_on_exception」
そして、これらのファイルは、次のとおりです。
routes.rbを:
devise_for :users, :controllers => {:sessions => 'sessions'}, :path => '', :path_names => { :sign_in => "login", :sign_out => "logout" } do
get '/checkemail' => 'sessions#checkemail', :as => 'checkemail'
end
sessions_controller.rb:
def checkemail
@checkemail = User.find_by_email(params[:checkemail])
if @checkemail.present?
respond_to do |format|
format.json { render json: "0" }
end
else
respond_to do |format|
format.json { render json: "1" }
end
end
end
アプリ/セッション/新.html .erb:
<%= semantic_form_for(@resource, :as => resource_name, :url => user_session_path, :remote => true, :format => :json, :html => { :id => 'mainLogin' }) do |f| %>
<input type="hidden" id="email_flag" value="0">
<%= f.inputs do %>
<%= f.input :email, :label => 'Your email address', :input_html => { :placeholder => "Email"} %>
<label id="error_explanation1" class="error errorExplanation" style="margin-top:-25px; color:red;"></label>
<%= f.input :password, :label => 'Your password', :input_html => { :placeholder => "Password"} %>
<% end %>
<%= f.buttons do %>
<%= f.commit_button :label => 'Sign me in', :button_html => {:class => 'login submit button', :disable_with => 'Wait...', :id => 'user_submit' }%>
<% end %>
<% end %>
<script type="text/javascript">
$("#user_submit").click(function(e) {
var userEmail = $("#user_email").val();
var v1 = validateFirstPage();
if(v1){
return false;
}else{
return true;
}
});
$(document).ready(function() {
$(document).on("change", "#user_email", function() {
var email = $("#user_email").val();
var url = "/checkemail?checkemail="+email;
$.get(url, function(data) {
$("#email_flag").val($.trim(data));
});
});
});
function validateFirstPage(){
var email_flag = $.trim($("#email_flag").val());
var userEmail = $.trim($("#user_email").val());
if(email_flag =="1"){
var error_msg = "Email doesnot exists";
$("#error_explanation1").html(error_msg).fadeIn();
}else{
if(userEmail != "" && email_flag !="1"){
$("#error_explanation1").html("").fadeOut();
} else{
$("#error_explanation1").html("").fadeOut();
}
return false;
}
}
</script>
実行してくださいすくいルートを確認する必要があります| get routeのgrep checkemailが存在するかどうか – Sunny
何も表示していません。空白。 – user3189916
ですので、小切手の経路はありません – Sunny