#ruby-on-rails #ruby-on-rails-3
#ruby-on-rails #ruby-on-rails-3
Вопрос:
У меня есть две модели, одна для страниц, а другая для авторов.
У меня почти получилось показать, какому автору принадлежат страницы, но я продолжаю получать сообщение об ошибке, говорящее:
uninitialized constant Page::Authors
Я определил метод для авторов в моем контроллере страниц @pages = @author.pages
и не уверен, правильный ли он. это мой код для моих контроллеров.
class PagesController < ApplicationController
def index
@pages = Page.find(:all, :order => 'created_at DESC')
end
def show
@page = Page.find(params[:id])
end
def new
@page = Page.new
end
def edit
@page = Page.find(params[:id])
end
def create
@page = Page.new(params[:page])
if @page.save
redirect_to(@page, :notice => 'Page was successfully created.')
else
render :action => "new"
end
end
def update
@page = Page.find(params[:id])
if @page.update_attributes(params[:page])
redirect_to(@page, :notice => 'Page was successfully updated.')
else
render :action => "edit"
end
end
def destroy
@page = Page.find(params[:id])
@page.destroy
end
def author
@pages = @author.pages
end
end
И вот мой авторский контроллер:
class AuthorsController < ApplicationController
def index
@authors = Author.find(:all, :order => 'created_at DESC')
end
def show
@author = Author.find(params[:id])
end
def new
@author = Author.new
end
def edit
@author = Author.find(params[:id])
end
def create
@author = Author.new(params[:author])
if @author.save
redirect_to(@author, :notice => 'Author was successfully created.')
else
render :action => "new"
end
end
def update
@author = Author.find(params[:id])
if @author.update_attributes(params[:author])
redirect_to(@author, :notice => 'Author was successfully updated.')
else
render :action => "edit"
end
end
def destroy
@author = Author.find(params[:id])
@author.destroy
end
def author_id
@author = @pages.author
end
end
Я просто хочу показать, кто создал страницы, я использую select из формы, чтобы получить автора, который уже был введен в базу данных. При создании новой страницы выбирается список выбора и вводится содержимое, а затем, когда вы показываете новый или показываете шаблон, возникает ошибка.
В моих моделях я указал belongs_to:author и has_many:pages.
Я близок.
Любые идеи были бы замечательными. Спасибо
Комментарии:
1. Как примечание,
<code>
не работает в StackOverflow. Вместо этого просто сделайте отступ с четырьмя пробелами.
Ответ №1:
Чего здесь не хватает, так это трассировки стека, которая показывает, где используется рассматриваемая строка. Часто совершается ошибка ссылки на Authors
класс вместо фактического Author
и в конечном итоге возникают ошибки, подобные этой. Ничто из того, что вы вставили, не кажется проблематичным таким образом.
Если Author has_many :pages
и Page belongs_to :author
, то это должно сработать.