更改Bootstrap模式的设备

时间:2012-06-13 08:29:04

标签: ruby-on-rails ajax twitter-bootstrap modal-dialog

我找到了这个链接Link to another page using Twitter Bootstrap jquery modal in rails,这完全是我需要的 - 注册和其他使用Bootstrap模态和设计。

我做了那些步骤,但它没有弹出,但重定向到另一个页面并显示不正确的页面。

它表现得非常奇怪,它会打开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作为JS            渲染设计/注册/ new.js.erb(15.6ms)            在31毫秒内完成500内部服务器错误

      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'

哪里有问题?

2 个答案:

答案 0 :(得分:3)

new.js.erb 中,您尝试在名为#main的部分中注入模态代码。

<div>id=main标记添加到您正在调用此页面的页面中,它应该有效。

答案 1 :(得分:1)

您的文件在哪个文件夹中?如果您要使用Devise,则可以使用rails generate devise:views自定义视图。然后将new部分和new js文件放在该文件夹中。

如果需要,您也可以configure the controller,但如果您创建视图,则Devise应自动指向上述命令创建的Devise文件夹。

在您的jQuery中,您只需render "devise/registrations/new"而不是"new"