13

好的,所以我想使用 twitter 引导模式来显示设计登录表单。

我将 wiki 文章的代码基于此处: https ://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

我的应用程序布局文件中有以下标记

<div class="modal fade" id="loginModal">
  <div class="modal-header">
    <button class="close" data-dismiss="modal">×</button>
    <h3>Sign In</h3>
  </div>
  <div class="modal-body">
    <%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'form-horizontal'}) do |f| %>
          <div class="inputs">
            <%= f.input :email, :required => false, :autofocus => true %>
            <%= f.input :password, :required => false %>
            <%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
          </div>
  </div>
    <div class="modal-footer">
        <%= f.button :submit, "Sign in", :class => 'btn btn-primary', :data => { :dismiss => "modal"} %>
        <% end %>
    </div>
</div>

并且,按照 wiki 中的建议,将以下内容添加到应用程序帮助文件中

def resource_name
  :user
end

def resource
  @resource ||= User.new
end

def devise_mapping
 @devise_mapping ||= Devise.mappings[:user]
end

但是,它不起作用。模态消失了,没有任何反应。该页面不会去任何地方或做任何事情。转到实际的登录页面有效,但提交模式无效。建议?

4

2 回答 2

4

这是最终工作的代码

<%= simple_form_for(:user, :url => user_session_path) do |f| %>
于 2013-08-27T13:36:41.667 回答
2

不要使用:data => { :dismiss => "modal"}. 那应该从引导程序中触发一些覆盖表单提交事件的js函数

于 2012-05-30T02:00:25.167 回答