【问题标题】:undefined method error appears in erb but not hamlerb中出现未定义的方法错误,但haml中没有
【发布时间】:2010-03-09 15:51:27
【问题描述】:

我想做的就是将一个haml文件转换为erb。这样做之后,我得到 未定义的方法“render_sequence_nav”错误消息。即使没有 当它是haml格式时发生了这样的错误。在haml文件中,有这一行:

    #fields << render_sequence_nav(sequence_info, students_path)
    fields << render(:partial => "resources_partials/sequence/nav", :locals => sequence_info.merge({:cancel_url => {:controller => :dashboard}}))

  = render_form { fields }

如果我从#fields 中删除#,它将在haml 中返回未定义的方法render_sequence_nav。所以很明显这是需要的。但是,我无法在 erb 中重新创建它。如果我添加哈希,它会使该行变灰:

   <% #fields << render_sequence_nav(sequence_info,
  students_path) %>
    <% fields << render(:partial =>
 "resources_partials/sequence/nav", :locals =>
 sequence_info.merge({:cancel_url => {:controller => :dashboard}})) %>
  <%= render_form { fields } %>
  <% end %>

关于如何解决这个问题的任何想法?谢谢。

【问题讨论】:

    标签: ruby-on-rails haml erb


    【解决方案1】:

    您的问题有点令人困惑,因为您声明在将 Haml 用于视图时未发生错误,但在第二段中您写道,如果您取消注释 fields 行,则使用 Haml 时会出现错误。

    Rails 正在寻找一个名为 render_sequence_nav 的视图辅助方法。这应该位于app/helpers/application_helper.rb 或与此视图的控制器对应的任何帮助器中。

    【讨论】:

    • 那么在haml文件中,#也表示注释? #fields
    • 你是否知道为什么这会在 erb 而不是在 haml 中产生未定义的方法连接错误: "resources_partials/sequence/nav", :locals = > sequence_info.merge({:cancel_url => {:controller => :dashboard}})) %>
    • 对不起,在 Haml 中 # 表示您所说的元素的 ID 属性。我不知道你的新问题的答案。
    • 我上面这行haml转换为erb是否正确? #fields
    • 这作为 Haml 行没有意义,因为它试图将 render_sequence_nav 方法的结果附加到 ID 为 fields 的元素中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    相关资源
    最近更新 更多