【问题标题】:Error message in partial rendered twice部分呈现两次错误消息
【发布时间】:2014-02-17 07:36:43
【问题描述】:

我在 RoR 教程中做练习,遇到了一个奇怪的问题,错误消息出现了两次。

new.html.slim

- provide(:title,'Sign up')

h1 Sign up
div class="row"
    div class="col-sm-6 col-sm-offset-3"
        = form_for(@user,html:{role:"form"}) do |f|
            = render 'shared/error_messages'
            div class="form-group"
                = f.label :name
                = f.text_field :name, class:"form-control"
            div class="form-group"
                = f.label :email
                = f.text_field :email, class:"form-control"
            div class="form-group"
                = f.label :password
                = f.password_field :password, class:"form-control"
            div class="form-group"
                = f.label :password_confirmation,"Confirmation"
                = f.password_field :password_confirmation, class:"form-control"

            = f.submit "Create Account", class: "btn btn-lg btn-primary"

在这段代码(第 7 行)中,我正在渲染部分 shared/error_messages。该页面的调用方式如下:

users_controller.rb

def create
  @user = User.new(user_params)
  if @user.save
  else
    render 'new'
  end
end

def user_params
  params.require(:user).permit(:name, :email, :password, :password_confirmation)
end

有什么想法吗?

编辑:添加部分

= if @user.errors.any?
    div#error_explanation
        div class="alert alert-danger"
            | The form has
            = "#{@user.errors.count}"
            | error(s)
        ul
            - @user.errors.full_messages.each do |msg|
                li
                    = "#{msg}"

【问题讨论】:

  • 这是一个实际的双重渲染错误,还是您只是在页面上显示了两次?
  • 我在页面上显示了两次这个“shared/error_messages”位,当我用谷歌搜索这个问题时,我认为问题是因为我在 users_controller.rb 中调用了“新”而引起的。
  • 你能把这部分的内容贴上来吗?
  • = if @user.errors.any? 只需将 '=' 更改为 '-'
  • 我不熟悉这种“苗条”的语法,但似乎= 用于输出值,而- 用于控制正在执行的内容(与ifeach 语句等一起使用)。类似于.html.erb 文件中的<%=<%

标签: ruby-on-rails ruby slim-lang


【解决方案1】:

我认为您的部分 for 中有语法错误

= 如果@user.errors.any?

- 如果@user.errors.any?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-24
    • 2012-05-05
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多