habtm 관계로 태그 모델과 관련된 포스트 모델이있는 레일 4가 있습니다. 태그에는 이름 필드와 카테고리 필드가 있습니다. 여러 태그는 동일한 카테고리를 가질 수 있습니다.레일의 관련 모델 속성을 기준으로 한 필터 인덱스 뷰
"foo"카테고리에 속한 태그가 하나 이상있는 게시물 만 표시하는보기가 필요합니다. Foo는 정적이며 항상 "foo"로 유지됩니다.
나는 내 게시물 컨트롤러에이 코드를 사용하여 작동하게 할 수있었습니다 : 내 코드를 작업하는 읽기 정말 추한 모습
def myview
ids = []
Tag.where(category: 'foo').each do |tag|
tag.posts.each do |post|
ids << post.id
end
end
@posts = Post.where(id: ids).all
end
에도 불구하고.
레일스는 "@posts = Post.where 태그 카테고리에 'foo'.all'이 포함되어 있지만 반드시 알아낼 수는 없습니다. 나는 아주 obvoius 뭔가를 놓치고있어 확신 해요.
Post.includes (: tags) .where ("tags.category =?", "foo")' –
@PavittarGill pry (main)> Post.includes (: tags) .where ("tags.category = "", "foo") 게시물로드 (4.2ms) SELECT "posts". * FROM "posts"WHERE (tags.category = 'foo') SQLite3 :: SQLException : 해당 열 없음 : tags.category : SELECT "posts". * FROM "posts"WHERE (tags.category = 'foo') => # –
TopperH