Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 实例变量nil在一个视图中,而不是在另一个视图中_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 实例变量nil在一个视图中,而不是在另一个视图中

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

我正在使用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 @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
,则不需要。是的,但我知道他显示的表单在编辑操作中。是的,我知道,也许我不清楚。我的意思是,如果他正在从编辑操作呈现编辑视图,他可能需要在其操作中设置变量是的,的确如此。虽然我确实觉得这里不是这样。他应该显示编辑操作以消除歧义。我正在从更新操作渲染编辑视图-控制器中没有编辑操作。