未定义的方法`error_span' - Rails项目

Nik*_*tre 1 html ruby runtime-error ruby-on-rails ruby-on-rails-4

我正在使用Ruby 1.9在Rails 4.1中创建一个作业门户应用程序

该应用程序最初运行正常,但意外地弹出一个错误.views目录中的jobs子目录包含两个文件new.html.erb和_form.html.erb(这是一个部分文件).在渲染新文件时,也会从新文件呈现部分文件.

但是,该应用程序在Rubymine中显示以下错误

错误细节: "作业中的NoMethodError #new"

显示E:/RailsProject/Old/FinalSubm/jobportal/app/views/jobs/_form.html.erb,其中第23行引发:

第23行的未定义方法`error_span'

   20    <div class="controls">
   21      <%= f.text_field :title, :class => 'form-control' %>
   22    </div>
   23    <%= error_span(@job[:title]) %>
   24  </div>
   25  <div class="control-group">
   26    <%= f.label :description, :class => 'control-label' %>
Run Code Online (Sandbox Code Playgroud)

模板包含跟踪:app/views/jobs/new.html.erb

Rails.root:E:/ RailsProject/Old/FinalSubm/jobportal

应用程序跟踪| 框架跟踪| 完整跟踪
应用程序/ views/jobs/_form.html.erb:23:在_app_views_jobs__form_html_erb__604570268_42022236'app/views/jobs/new.html.erb:5:在`_app_views_jobs_new_html_erb___144564004_42034104' block in _app_views_jobs__form_html_erb__604570268_42022236'
app/views/jobs/_form.html.erb:1:in

以下是为E编写的代码:/ RailsProject/Old/FinalSubm/jobportal/app/views/jobs/_form.html.erb

<%= form_for @job, :html => { :class => "form-horizontal job" } do |f| %>

    <% if @job.errors.any? %>
    <div id="error_expl" class="panel panel-danger">
      <div class="panel-heading">
        <h3 class="panel-title"><%= pluralize(@job.errors.count, "error") %> prohibited this job from being saved:</h3>
      </div>
      <div class="panel-body">
        <ul>
        <% @job.errors.full_messages.each do |msg| %>
          <li><%= msg %></li>
        <% end %>
        </ul>
      </div>
    </div>
  <% end %>

  <div class="control-group">
    <%= f.label :title, :class => 'control-label' %>
    <div class="controls">
      <%= f.text_field :title, :class => 'form-control' %>
    </div>
    <%= error_span(@job[:title]) %>
  </div>
  <div class="control-group">
    <%= f.label :description, :class => 'control-label' %>
    <div class="controls">
      <%= f.text_area :description, :class => 'form-control' %>
    </div>
    <%= error_span(@job[:description]) %>
  </div>
  <div class="control-group">
    <%= f.label :tag1, :class => 'control-label' %>
    <div class="controls">
      <%=  f.select :tag1, options_for_select(%w[Internship Full-Time Part-Time Co-Op Contractor]) %>
    </div>
    <%= error_span(@job[:tag1]) %>
  </div>
  <div class="control-group">
    <%= f.label :tag2, :class => 'control-label' %>
    <div class="controls">
      <%= f.select :tag2, options_for_select(%w[Work-From-Home Office]) %>
    </div>
    <%= error_span(@job[:tag2]) %>
  </div>
  <div class="control-group">
    <%= f.label :tag3, :class => 'control-label' %>
    <div class="controls">
      <%= f.select :tag3, options_for_select(%w[US-Citizen Non-US-Citizen]) %>
    </div>
    <%= error_span(@job[:tag3]) %>
  </div>
  <div class="control-group">
    <%= f.label :category, :class => 'control-label' %>
    <div class="controls">
      <%= f.select :category_name, Category.all.collect{ |c| [c.name, c.id]} %>
    </div>
    <%= error_span(@job[:category_name]) %>
  </div>
  <div class="control-group">
    <%= f.label :deadline, :class => 'control-label' %>
    <div class="controls">
      <%= f.date_select :deadline, :class => 'form-control' %>
    </div>
    <%= error_span(@job[:deadline]) %>
  </div>
 <!-- <div class="control-group">
    <%= f.label :employer_id, :class => 'control-label' %>
    <div class="controls">
      <%= f.number_field :employer_id, :class => 'form-control' %>
    </div>
    <%= error_span(@job[:employer_id]) %>
  </div>
   <%= f.hidden_field :employer_id  %>
  <%= f.submit nil, :class => 'btn btn-primary' %>
  <%= link_to t('.cancel', :default => t("helpers.links.cancel")),
            jobs_path, :class => 'btn btn-default' %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

以下是为E编写的代码:/ RailsProject/Old/FinalSubm/jobportal/app/views/jobs/new.html.erb

<%- model_class = Job -%>
<div class="page-header">
  <h1><%=t '.title', :default => [:'helpers.titles.new', 'New %{model}'], :model => model_class.model_name.human.titleize %></h1>
</div>
<%= render :partial => 'form' %>
Run Code Online (Sandbox Code Playgroud)

该程序在几天后运行良好,此后除了重新启动rails服务器之外,没有对代码进行任何更改.我试图弄清楚这个错误从哪里出来.要解决此错误,我应该在Jobs#new controller中定义error_span方法吗?应该写什么?或者我应该从视图中删除error_span语句,但这意味着必须在代码中进行许多更改,因为我有8到10个文件,其中提到html语句的部分文件需要更改.

ele*_*nts 6

如果你正在使用twitter-bootstrap-rails(这是我猜测error_span方法的来源).

通过输入以下内容尝试使用最新代码Gemfile:

gem 'twitter-bootstrap-rails', :git => 'https://github.com/seyhunak/twitter-bootstrap-rails.git', :branch => 'master'
Run Code Online (Sandbox Code Playgroud)

因为看起来几周前他们修复了这种方法.

更多信息:https://github.com/seyhunak/twitter-bootstrap-rails/pull/795