Ruby on rails 实例变量nil在一个视图中,而不是在另一个视图中
我正在使用RubyonRails(RubyV.2.2.8,Rails5.1.4)进行一个项目,遇到了一个非常奇怪的问题 对于控制器中的显示方法,我有:Ruby on rails 实例变量nil在一个视图中,而不是在另一个视图中,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用RubyonRails(RubyV.2.2.8,Rails5.1.4)进行一个项目,遇到了一个非常奇怪的问题 对于控制器中的显示方法,我有: def show @county = County.find(params[:id]) end 它是有效的。为了更新,我有 def update @county = County.find(params[:id]) if @county.update(county_params) redirect_to
def show
@county = County.find(params[:id])
end
它是有效的。为了更新,我有
def update
@county = County.find(params[:id])
if @county.update(county_params)
redirect_to @county
else
render 'edit'
end
end
在我的“编辑”中,我始终得到一个错误@country为零。“错误”页面指示参数的传递方式为:
{'id'=>4}
举个例子。当我从rails控制台使用find_by时,就会找到该项
这里有什么我遗漏的吗
ETA:查看代码
<%= form_with model: @county, local: true do |form| %>
<% if @county.errors.any? %>
<div id="error_explanation">
<h2>
<%= pluralize(@county.errors.count, "error") %> prohibited
this county from being saved:
</h2>
<ul>
<% @county.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<%= form.label :name %><br>
<%= form.text_field :name %>
</p>
<p>
<%= form.label :shortname %><br>
<%= form.text_field :shortname %>
</p>
<p>
<%= form.submit %>
</p>
<% end %>
错误发生在/countries/:id/edit控制器中的编辑操作如何 您还应该定义@country
def edit
@county = County.find(params[:id])
end
控制器中的编辑操作如何 您还应该定义@country
def edit
@county = County.find(params[:id])
end
展示你的观点。它像打字一样简单吗
@country
而不是@country
或其他什么?您能分享您的县控制器的设置\u county
方法吗?添加了查看代码。我的控制器中没有set_county
方法。您能逐字说明您得到的确切错误吗?另外,您的路线与国家/地区模型有关吗?显示您的视图。它像打字一样简单吗@country
而不是@country
或其他什么?您能分享您的县控制器的设置\u county
方法吗?添加了查看代码。我的控制器中没有set_county
方法。你能逐字说明你得到的确切错误吗?还有,你的路线与国家/地区模型有关吗?如果他们从更新操作中呈现:edit
,则不必。是的,但我知道他显示的表单在edit action中是的。是的,我知道,也许我不清楚。我的意思是,如果他正在从编辑操作呈现编辑视图,他可能需要在其操作中设置变量是的,的确如此。虽然我确实觉得这里不是这样。他应该显示编辑操作以消除歧义。我正在从更新操作中呈现编辑视图-控制器中没有编辑操作。如果他们正在从更新操作中呈现:edit
,则不需要。是的,但我知道他显示的表单在编辑操作中。是的,我知道,也许我不清楚。我的意思是,如果他正在从编辑操作呈现编辑视图,他可能需要在其操作中设置变量是的,的确如此。虽然我确实觉得这里不是这样。他应该显示编辑操作以消除歧义。我正在从更新操作渲染编辑视图-控制器中没有编辑操作。