我的test_app中有以下视图页面:
<p id="notice"><%= notice %></p>
<p>
<strong>Box count:</strong>
<%= @job.box_count %>
</p>
<p>
<strong>Install date:</strong>
<%= @job.install_date %>
</p>
<%= link_to "Back", :back %>
我的jobs_controller show方法中有以下ruby代码:
def show
@job = Job.find(params[:job_id])
end
传递给视图的参数是(&#34; customer_id&#34;&#34; id&#34;作业),如下所示:
{"customer_id"=>"1", "id"=>"23"}
当我为任何作业加载视图时,出现以下错误:
Couldn't find Job without an ID
我的show方法一定有错误,但我不确定我做错了什么。
有什么想法吗?
看起来问题是我的表单没有将数据保存到表中,这是我的表单:
<%= form_for([@customer, @job]) do |f| %>
<% if @job.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@job.errors.count, "error") %> prohibited this job from being saved:</h2>
<ul>
<% @job.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :box_count %><br>
<%= f.number_field :box_count %>
</div>
<div class="field">
<%= f.label :install_date %><br>
<%= f.text_field :install_date %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
知道为什么没有保存数据吗?
答案 0 :(得分:1)
您应该使用:id
,而不是:job_id
:
def show
@job = Job.find(params[:id])
end