我找到了这个链接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'
哪里有问题?
答案 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"
。