我正在使用一些模型,包括acts
,bibliography
,authors
。尝试组织路由,以便在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控制台中运行良好。
答案 0 :(得分:0)
我在这里看到两个选项:
@bib
对象为nil
,因此您为NilClass
获取了未定义的方法错误。Bibliography
和Auteur
课程之间没有关系。您应该在第一堂课中使用has_many :auteurs
。如果您可以在此粘贴整个错误消息,我可能会更具体。希望这有帮助!