【问题标题】:undefined method `id' for nil:NilClass | ruby railsnil 的未定义方法“id”:NilClass |红宝石导轨
【发布时间】:2015-12-20 18:40:21
【问题描述】:

我做了一个项目来执行添加删除编辑记录。尝试编辑记录时出错。

index.erb,

<h1>Baza Filmow</h1>
<table class="table table-striped">
    <tr>
      <td>Tytul</td>
      <td>Reżyser</td>
      <td>Pozycja</td>
      <td>Czy w kinach</td>
      <td>Data</td>
      <td>Akcja</td>
      <td></td>
  </tr>
  <% @wszyscy.each do |w| %>
  <tr>
  <td><%= w.tytul %></td>
    <td><%= w.rezyser %></td>
    <td><%= w.pozycja %></td>
    <td><%= w.czy_w_kinach %></td>
    <td><%= w.data %></td>
    <td><%= link_to "Usuń", {id: w.id, action: 'usun'}, data:{confirm: 'Czy na pewno?'}, class: 'btn btn-warning'%> </td>
    <td><%= link_to "Edytuj", {id: w.id, action: 'edytuj'}, class: 'btn btn-info'%> </td>
  </tr>
  <% end %>
  </table>

要编辑记录,

<%= form_for @edytowany, url: {action: "aktualizuj", id: @film.id} do |f| %>
    <table class="table table-hover">
      <tr>
        <td>Tytuł</td>
        <td><%= f.text_field(:tytul) %></td>
      </tr>
      <tr>
        <td>Reżyser</td>
        <td><%= f.text_field(:rezyser) %></td>
      </tr>
      <tr>
        <td>Pozycja</td>
        <td><%= f.select :pozycja, (1..20), {include_blank: "Wybierz"} %></td>
      </tr>
      <tr>
        <td>Czy w kinach?</td>
        <td><%= f.check_box(:czy_w_kinach) %></td>
      </tr>
      <tr>
        <td>Czy w kinach?</td>
        <td><%= f.date_select(:data) %></td>
      </tr></table>
    <td><%= f.submit "Aktualizuj", class:'btn btn-primary' %></td>

<% end %>

routes.rb

  get 'film/index'   
  get 'film/utworz'   
  get 'film/usun'   
  get 'film/edytuj'   
  root 'film#index'

  match 'utworz', to: 'film#utworz', :via => [:post, :get]   
  match 'index', to: 'film#index', :via => [:post, :get]
  match 'film/dodaj' => 'film#dodaj', via: [:get, :post]   
  match 'film/usun' => 'film#usun', via: [:get, :post]   
  match 'film/edytuj' => 'film#edytuj', via: [:get, :post, :patch]

【问题讨论】:

  • 能否请您发布错误发生的位置
  • 欢迎来到 StackOverflow。请编辑您的问题以说明您的问题是什么。发生了哪些你没有预料到的事情?您可能只是在某处的代码中有错字,但如果您告诉我们正在发生或未发生的事情,您将其定义为“错误”,则故障排除会容易得多。您自己也采取过任何故障排除步骤吗?
  • 同时添加您的控制器代码。
  • 你有什么问题?

标签: ruby-on-rails ruby


【解决方案1】:

您的问题应该更具体一些,并且如前所述,还将您的控制器代码放入问题中。

乍一看,我会说您没有在控制器的编辑操作中定义@film

def edit
  @film = #Do your film lookup here.
end

【讨论】:

    【解决方案2】:

    我了解您的问题,我有解决方案

    我认为你应该传递 @edytowany 的 id 而不是 @file.id

    您可以在下面的链接中找到更多知识 https://guides.rubyonrails.org/v2.3.11/form_helpers.html

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多