rails namespace nomethod错误

时间:2017-01-12 14:18:47

标签: ruby-on-rails ruby

我正在使用一些模型,包括actsbibliographyauthors。尝试组织路由,以便在namespace管理下将这些模型上的管理操作组合在一起。

这是我的routes.rb:

namespace :administration do
  resources :actes, path: 'actes', path_names: { new: 'nouveau', edit: 'editer' }, except: [:chercher, :voir]
  get 'actes/nouveau/:id' => 'actes#nouveau', as: 'nouvel_acte'
  post 'actes/nouveau/:id' => 'actes#ajouter'
end

我的控制器有这个:

class Administration::ActesController < ApplicationController

  def nouveau
    @titre = "Fons - ajouter un acte"
    @bib = Biblio.find(params[:id])
    @bibid = @bib.id
  end

在nouveau.html.erb中我这样做:

<% @bib.auteurs.each do |l| %>
  <%= l.nom_complet %>, 
<% end %>
<%= @bib.titre %>, <%= @bib.lieu %>, <%= @bib.annee %>

这会引发NoMethodError:undefined method 'auteurs'。我发现整个方法@bib都不知道 - 尽管它在rails控制台中运行良好。

1 个答案:

答案 0 :(得分:0)

我在这里看到两个选项:

  1. @bib对象为nil,因此您为NilClass获取了未定义的方法错误。
  2. 您在BibliographyAuteur课程之间没有关系。您应该在第一堂课中使用has_many :auteurs
  3. 之类的语句

    如果您可以在此粘贴整个错误消息,我可能会更具体。希望这有帮助!