Ruby on rails 模态表单不创建用户

Ruby on rails 模态表单不创建用户,ruby-on-rails,twitter-bootstrap,Ruby On Rails,Twitter Bootstrap,我以前在rails中创建表单时没有遇到任何问题,但这是我第一次在模式中创建表单,我不确定这是否会影响工作。我想没有,但你永远不知道。问题是没有保存新用户,我没有得到任何有用的错误。这是我的表格,在模态中: <div class="modal-body"> <%= form_for @user do |f| %> <%= f.label :first_name %><br> <

我以前在rails中创建表单时没有遇到任何问题,但这是我第一次在模式中创建表单,我不确定这是否会影响工作。我想没有,但你永远不知道。问题是没有保存新用户,我没有得到任何有用的错误。这是我的表格,在模态中:

<div class="modal-body">

        <%= form_for @user do |f| %>

            <%= f.label :first_name %><br>
            <%= f.text_field :first_name, class: 'form-control', :required => true %><br>

            <%= f.label :last_name %><br>
            <%= f.text_field :last_name, class: 'form-control', :required => true %><br>

            <%= f.label :user_name %><br>
            <%= f.text_field :user_name, class: 'form-control', :required => true %><br>

            <%= f.label :password %><br>
            <%= f.password_field :password_digest, class: 'form-control', :required => true%><br>

            <%= f.label :password_confirmation %><br>
            <%= f.password_field :password_confirmation, class: 'form-control', :required => true%><br>      

  </div> <!-- modal body -->

            <div class="modal-footer">
                <%= f.submit "Sign Up"%><br>
            </div>
            <% end %> 
更有可能的是,我遗漏了一些东西。我的问题分为两个部分:A)出现了什么问题,B)如何阻止模式窗口关闭,并让它向用户显示相应的错误,让他们有机会修复它?

尝试:

@user = User.new(user_params)
而不是:

@user = User.create(user_params)
因为,您正在尝试
保存此呼叫后的用户

使用
create
时,它会调用
create
,然后调用
save

如果使用:
User.new(User\u params)
,它将只加载具有指定的
User\u params
的用户对象,但不会保存它。在下一行中,当您调用:
@user.save
时,将保存用户对象(如果有效)。否则,就不是

此外,您还可以尝试使用:
@user.save
而不是
@user.save
。因为,当您尝试使用
save请注意表单中的元素/标记“”,因为结束标记在表单中

<%= form_for @user do |f| %>
   <div class="modal-body">
      ......your stuff fields here
   </div> <!-- modal body -->
   <div class="modal-footer">
      <%= f.submit "Sign Up"%><br>
   </div>
<% end %>

……你的东西在这里


最奇怪的是,我最初把它作为@user=
user.new(user_params)
使用了很长一段时间,但它没有工作。我发誓!因此,我在这里发布之前,对自己进行了第二次猜测,并将其更改为User.create,以尝试正确的方法(但失败了)……现在,根据您的建议,我已将其切换回原来的位置,它可以正常工作!!!grrrr!松了一口气。哈哈,谢谢!我会在几分钟内把这个标记为答案当我被允许的时候这真的很奇怪当有人在没有任何评论的情况下否决了一个答案!更奇怪的是,当答案是正确的并且解决了问题时。我同意,我看到了这一点,并立即投了赞成票来平衡它。我个人很感激你的帮助;)顺便说一句,如果你对我问题的第二部分有任何建议:如何停止关闭模式,并在需要时向模式(而不是页面正文)呈现任何错误-请分享!!谢谢@当然,要在模式中呈现错误,可以使用Ajax。下面是一个很好的教程,它展示了如何使用Ajax显示模态中的错误:请查看!谢谢。我不知道你的意思,但如果我是对的。。。看起来我很可能不会关闭某些东西,因为这不是模态中的所有代码,只是表单主体,但上面有div,下面有更多的结束标记,我在上面的代码中理解,您的div=“modal body”在表单外部,div=“modal body”的结束标记在表单内部。因此,如果我是对的,代码将不会正确反应。不,它只是看起来那样,因为我没有把整个模块代码放在上面,只是我认为重要的部分,表单。一切都已正确关闭,问题是
@user=user。请创建
,而不是
@user=user。新建
-它现在正在工作,但感谢您花点时间帮助;)
<%= form_for @user do |f| %>
   <div class="modal-body">
      ......your stuff fields here
   </div> <!-- modal body -->
   <div class="modal-footer">
      <%= f.submit "Sign Up"%><br>
   </div>
<% end %>