Rails表单中的Nil实例变量

时间:2015-12-11 23:37:23

标签: ruby-on-rails ruby forms ruby-on-rails-4

我在编辑视图中访问我的实例变量时遇到问题。我正在创建一个编辑表单来更改值并更新数据库。我的edit.html.erb是:

<% provide(:title, "Edit Campaign") %>
<h1>Update your Campaign</h1>

<div class="row">
  <div class="col-md-6 col-md-offset-3">
    <%= form_for(@campaign, url: edit_campaign_path(params[:id])) do |f| %>
        ...
      <%= f.submit "Save changes", class: "btn btn-primary" %>
    <% end %>
  </div>
</div>

我收到的错误是表单中的 First参数不能包含nil或为空。我已经检查了shell并且@campaign是nil,虽然edit_campaign_path是正确的并且id存在。

在new.html.erb中,我可以使用:

<%= form_for(@campaign) do |f| %>

没有任何问题。为什么我去编辑时,实例变量是nil?

1 个答案:

答案 0 :(得分:2)

您的@campaign = Campaign.find(params[:id])

需要CampaignController#edit