0

このリンクLink to another page using Twitter Bootstrap jquery modal in railsを見つけました。必要なものは完全にここにあります-登録と、Bootstrap modal と Devise を使用する他の人。

その手順を実行しましたが、ポップアップしませんが、別のページにリダイレクトされ、適切なページが表示されません。

それは本当に奇妙に振る舞い、NOT MINE フォームを開きます。

_new.html.erb

<div class="modal hide fade in" id="sign_up">

<%= form_for resource, :as => resource_name, :url => registration_path(resource_name),do |f| %>
  <%= devise_error_messages! %>
....
 <% end %>     

new.js.erb を作成します。

      $("#main").before("<%= escape_javascript(render "new", :formats => [:html]) %>");
      $("#sign_up").modal();

および link_to :

       <%= link_to "Sign up", new_user_registration_path, :remote => true %>

そしてapplication.html.erbで:

    <%= stylesheet_link_tag    "application", media: "all" %>
   <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' %>
    <%= csrf_meta_tags %>

編集済み。 私のログ: Devise::RegistrationsController#new による処理 レンダリングされた devise/registrations/new.js.erb (15.6ms) 31ms で 500 Internal Server Error を完了

      ActionView::Template::Error (Missing partial devise/new with {:locale=>[:en], :f
       ormats=>[:js, :html], :handlers=>[:erb, :builder, :coffee, :rabl]}. Searched in:

     * "D:/print_it_green/app/views"
    * "C:/Ruby192/lib/ruby/gems/1.9.1/gems/devise-2.1.0/app/views"
       ):
        1: $("#sign_up").before("<%= escape_javascript(render "devise/new", :formats
       => [:html]) %>");
         2: $("#sign_up").modal();
      app/views/devise/registrations/new.js.erb:1:in `_app_views_devise_registration
       s_new_js_erb___312569811_25856784'

問題はどこですか?

4

2 に答える 2

3

new.js.erbでは、。というセクションにモーダルコードを挿入しようとしています#main

これを呼び出しているページに空の<div>タグを追加すると、機能するはずです。id=main

于 2012-10-30T07:31:09.310 に答える
1

ファイルはどのフォルダにありますか? Devise を使用する場合は、 を使用rails generate devise:viewsしてビューをカスタマイズできます。次に、newパーシャル ファイルとnewjs ファイルをそのフォルダーに配置します。

必要に応じてコントローラーを構成することもできますが、ビューを作成すると、Devise は前述のコマンドが作成する Devise フォルダーを自動的にポイントする必要があります。

jQueryrender "devise/registrations/new"では、単に"new".

于 2012-06-13T14:41:09.553 に答える