【问题标题】:Nil Instance Variable in Rails FormRails 形式的 Nil 实例变量
【发布时间】:2015-12-11 23:37:23
【问题描述】:

我在访问编辑视图中的实例变量时遇到问题。我正在创建一个编辑表单来更改值并更新数据库。我的 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>

我收到的错误是 表单中的第一个参数不能包含 nil 或为空。我已经签入了 shell 并且 @campaign 为 nil,尽管 edit_campaign_path 是正确的并且 id 存在。

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

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

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

【问题讨论】:

  • 我怀疑杨的回答是对的,但我们需要 CampaignsController 的控制器代码
  • 能否请您出示来自控制器的edit 代码?
  • 我在编辑中缺少@符号。

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


【解决方案1】:

您的CampaignController#edit 中需要有@campaign = Campaign.find(params[:id])

【讨论】:

  • 谢谢。我将它添加到我的控制器中,它就像一个魅力!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多