2014-12-29 3 views
0

Я создаю сайт с использованием рельсов, и я хотел бы поделиться моделью. Я последовал за учебником для создания статьи. В ArticlesController есть индекс, показ, новый, редактировать, создавать, обновлять и уничтожать. Я решил, что буду использовать это как часть ввода данных в моем приложении. Затем я собирался создать PageController, у которого есть дом, новости, видео, музыка и события. Вот мой настройки:пытается поделиться моделью в моем приложении

вот моя статья модель

class Article < ActiveRecord::Base 
    has_attached_file :image, styles: { large:"700x700>", medium:"300x300>", thumb:"150x150#"} 
    validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/ 
    validates :title, presence: true, 
       length: { minimum: 5 } 
    belongs_to :page 
end 

вот моя страница модель

class Page < ActiveRecord::Base 
    has_many :article 
end 

вот моя страница контроллер

class PageController < ApplicationController 
    def home 
@page = Page.includes(:articles) 
    end 

    def news 
    end 

    def videos 
    end 

    def music 
    end 

    def events 
    end 
end 

здесь мой дом вид

здесь ошибка я получаю

undefined method `articles' for #<ActiveRecord::Relation []> 

не ясно onwhats происходит. Любая помощь будет оценена

ответ

0

Из ограниченной информации, которую вы опубликовали, я принимаю самое лучшее, что вам нужно сделать, это создать ассоциацию. Страницы должны содержать_ статьи и статьи должны принадлежать_ странице. http://guides.rubyonrails.org/association_basics.html

После этого является установка, контроллер может быть настроен следующим образом:

@page = Page.includes(:articles) 

Это будет загружать страницы и связанных с ней статей в одном запросе SQL, то вы можете позвонить

@page.articles.each |article| 
    puts article.title 
    puts article.content 
    puts article.image 
end 

Теперь вы можете получить доступ ко всей информации и использовать ее по своему усмотрению.

Смежные вопросы