【问题标题】:rails: undefined method hmtl_safe with simple form and deviserails:未定义的方法 hmtl_safe 具有简单的形式和设计
【发布时间】:2018-05-20 09:46:47
【问题描述】:

我有一个使用简单表单和设计 gem 的 rails 应用程序,我最近更新了我的 gem,但我遇到了以下问题,对于新用户会话表单,我在密码字段出现 undefined method 'html_safe' for #<Hash:0x0056223f885c68> 错误消息之前,它工作得很好.

我还尝试了输入 field_field 而不是输入,在这种情况下它工作得很好,但渲染结果看起来很乱,所以我添加了 wrapper 让它看起来更好,但我又收到了错误消息。我只有新用户会话才有这个问题,新用户注册工作正常。

这是我的看法:

<%= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
  <div class="form-inputs">
    <%= f.input :login, autofocus: true, placeholder: true %>
    <%= f.input :password, placeholder: true %>
    <%= f.input :remember_me, as: :boolean if devise_mapping.rememberable? %>
  </div>
  <div class="row">
  <div class="col-md-6">
    <%= render "devise/shared/links" %>
  </div>
  <div class="col col-md-6">
  <div class="form-actions">
    <%= f.button :submit, "Login", :class => 'pull-right' %>
  </div>
  </div>
<% end %>

【问题讨论】:

  • 不应该placeholder 有一个字符串来显示而不是一个布尔值?例如:placeholder: "password"
  • 没有。使用简单的形式,您可以将值设置为 true,而简单的形式将在翻译文件中查找键为 password 的值
  • 您是否编辑了翻译,以便密码/占位符键现在具有一组嵌套值?
  • 我总是在 Rails 应用程序中使用翻译文件。对于简单的形式,我只是按照 github 页面 I18n 部分中的示例进行操作。

标签: ruby-on-rails ruby devise simple-form


【解决方案1】:

我找到了这个解决方案,我只是把这个代码:

&lt;%= f.input_field :password, placeholder: true, class: "form-control" %&gt;

但仍然不明白为什么输入和包装器不适用于密码字段并且仅适用于新会话

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多