2016-09-02 1 views
0

주문 나는 두 가지 모델의 image.rb 및 story.rb
루비 - 두 모델

내가 함께 주문하는 것을 시도하고있다.

def index 
    @stories = Story.all.order(:cached_votes_total => :desc) 
    @images = Image.all.order(:cached_votes_total => :desc) 
    @combined = (@stories + @images).sort_by {|record| record.created_at} 
end 


private 
    def story_params 
     params.require(:story).permit(:title, :content, :category) 
    end 


images_controller.rb는 다음과 같습니다 :

stories_controller.rb은 다음과 같습니다 둘 다 주문 내 index.html.erb 메신저 tryign에서

private 
    def image_params 
     params.require(:image).permit(:title, :image, :image_file_name, :category) 
    end 

을하지만 난에 실행 서로 다른 매개 변수를 가지고 있으므로 정의되지 않은 메서드 오류가 발생합니다.

이 문제를 해결하는 방법은 무엇입니까?

+0

이것은 잘못된 접근입니다. 모델 연결을 사용해야합니다. –

답변

0

이 잘못된 접근은 두 가지 모델을 결합하는 것은 권장하지 않습니다, 당신은 .. 예를 컨트롤러에서

# Image Model 
class Image < ActiveRecord::Base 
    belongs_to :story 
end 

# Image Model 
class Story < ActiveRecord::Base 
    has_one :image 
end 

를 들어 .. 이것에 대한

def index 
    @stories = Story.find(:all, :include => :image).order(:cached_votes_total => :desc) 
end 

을 모델 연결을 사용해야입니다 마지막으로보기에서

+0

마이 그 레이션에서 create_stories 및 create_images가 있으므로 create_stories 마이그레이션 파일에 create_table : images를 추가해야합니까? 이것은 'Where 절'에 알 수없는 열 'images.story_id'를 반환하기 때문에 : SELECT'images'. * FROM'images' WHERE'images'.story_id' IN ('7', '8') –

+0

http://guides.rubyonrails.org/association_basics.html –