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语句的部分文件需要更改.
如果你正在使用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
| 归档时间: |
|
| 查看次数: |
2705 次 |
| 最近记录: |