Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 简单表单错误通知_Ruby On Rails_Twitter Bootstrap_Devise_Simple Form - Fatal编程技术网

Ruby on rails 简单表单错误通知

Ruby on rails 简单表单错误通知,ruby-on-rails,twitter-bootstrap,devise,simple-form,Ruby On Rails,Twitter Bootstrap,Devise,Simple Form,我正试图找出如何使用Rails、Desive、Omniauth和Bootstrap的简单表单。我有几个问题,但其中之一是错误通知 我在Bootstrap modals中有一个设计登录和注册表单。登记表格如下。请注意,我从表单中删除了required:true函数,因为我不喜欢将星号附加到标签上(但我确实尝试将其放回去以查看错误通知是否有效) 我的应用程序助手和设计助手中的设计助手如下: def resource_name :user end def resource @resource

我正试图找出如何使用Rails、Desive、Omniauth和Bootstrap的简单表单。我有几个问题,但其中之一是错误通知

我在Bootstrap modals中有一个设计登录和注册表单。登记表格如下。请注意,我从表单中删除了
required:true
函数,因为我不喜欢将星号附加到标签上(但我确实尝试将其放回去以查看错误通知是否有效)

我的应用程序助手和设计助手中的设计助手如下:

def resource_name
  :user
end

def resource
  @resource ||= User.new
end

def devise_mapping
  @devise_mapping ||= Devise.mappings[:user]
end
我的初始值设定项文件有两个简单的表单文件。一个是simple_form.rb。另一个是simple_form_bootstrap.rb

表单中没有内联显示错误。当我在没有电子邮件地址的情况下填写表单时,我会收到注册控制器的创建功能中出现的错误

我真的希望当用户单击submit时,错误以内联形式出现

有人知道如何解决这个问题吗


谢谢。

有人知道如何解决这个问题吗?

因为您可以在
注册
表单中使用对象,这意味着您可以自由选择如何显示错误。如果您试图通过
登录
(因为登录不使用表单)实现同样的功能,情况就不同了

--

表格

我们以前已经这样做过(您可以看到-单击顶部的“注册”):

#app/views/designe/registrations/new.html.erb
“电子邮件”%>

考虑到
对象的
表单中的
设计资源
,这应该允许您内联显示错误

您说您在使用modals?但是您没有在表单上发布ajax(no
remote:true
)。因此,我将描述我认为现在发生的事情。您不发布ajax,所以发布html,所以它选择
format.html
路径,一旦出现错误,您的控制器将重定向到根路径,并显示一条错误消息。相反,它应该重新呈现表单

因此,在create操作中取消注释注释行应该是有效的:)(并删除当前的
format.html
行)

当然,重新渲染不会是模态的。在使用modals时,如果希望表单保持打开状态,则必须使用ajax并在出现错误时用重新呈现的版本替换表单


简单表单,当给定一个有验证错误的对象时,将自动内联显示错误。

如果:

  • 删除:f.从简单表单调用中删除错误;及
  • 插入:在表单输入字段内
  • 如果您对用户模型进行了验证,并且还使用了Desive validatable,则表单顶部的错误列表将复制错误。删除一个或另一个验证,您将使错误正常工作

    我不明白为什么simple form不呈现错误-但这是一个解决方案

    我已经决定从我的应用程序中删除简单的表单-我无法阅读文档,并且在Stack Overflow上发布的与Desive一起使用它相关的许多问题都没有得到回答。我看不到它的好处


    至于模态-我将尝试使用这个。(祈祷吧)。我希望这个答案对某人有所帮助。3个月来,我一直在努力建立Desive,3周来,我每天都在努力理解文档

    确保您的初始值设定项包装中有类似的行

    b.use:error,用{tag:'span',class:'help block'}将_包装起来

    正如您在问题中提到的,请删除
    必需:false
    , 要删除required的“*”,请在config/locale/simple_form.en.yml中对其进行更改

    required:
      text: 'required'
      mark: ''
    

    嗨,里奇,谢谢你给我看你的例子。我觉得我原来的帖子出了问题。登记表的开头一行没有出现在我问题的公开文本中。我使用的是简单形式的gem。它有一个f.error\u通知功能。我想知道这是否干扰了错误通知。我尝试在我的表单中添加类似于您的代码,但没有成功。我想知道是否有某种简单的形式促成了这一问题。感谢您分享您的方法-如果我不能弄明白这一点,也许我可以卸载简单的表单,然后按照您的方式尝试。表单是通过AJAX提交的吗?谢谢您的关注。我已经更新了这个问题,以包括模态的开头行(显示remote true)。我需要在表格中再次填写吗?我不知道如何用重新渲染的表单替换表单。你知道怎么做吗?即使删除并重新安装Desive和simple表单,错误也不会在表单中显示为内联。我真的很想知道如何让它们展示出来。你知道为什么它们不会呈现、内联,就像几乎所有与简单表单和设计相关的博客和文档中所显示的那样吗?谢谢让我直截了当地说:当你点击
    注册
    -链接时,你会显示模式,其中包含两个链接,可以注册facebook或linkedin?Afaik
    数据切换将阻止跟随链接的默认操作,因此您将只看到两个链接。这是正确的吗?看起来您同时在处理很多问题:Desive和simple表单是新的,ajax表单是新的,甚至rails对您来说也是新的,然后您想做omniauth。我会把重点放在准备一个简单的注册流程上,并逐渐增加难度,这样你就可以顺利完成。宝贝,谢谢你。我已经编写了自定义jquery来处理错误(因此,我没有按照上面的建议尝试编辑简单表单或简单表单引导初始化器)。我真的不明白为什么标准函数不能处理这些gem,但已经解决了这个问题。感谢您提供关于yml文件中*的提示。
    
    def resource_name
      :user
    end
    
    def resource
      @resource ||= User.new
    end
    
    def devise_mapping
      @devise_mapping ||= Devise.mappings[:user]
    end
    
    #app/views/devise/registrations/new.html.erb
    <%= f.email_field :email, :placeholder => "email" %>
    <div class="error"><%= devise_resource.errors[:email].first if devise_resource.errors[:email].present? %></div>
    
    required:
      text: 'required'
      mark: ''