Act를 태그 가능 (Redux)으로 사용하여 특정 태그를 가진 객체 그룹을 찾고 표시하는 방법은 무엇입니까?
-
06-07-2019 - |
문제
내 태그 쇼보기에 기사 목록을 표시하고 싶습니다. Rails 2.3.2 및 SQLITE3 앱에서 ACTS AT AT AS TAGGable Redux 플러그인을 사용하고 있습니다. 나는 그까지 멀었다 기본 예 나를 데려 가서 태그를 할당 한 다음 기사와 함께 목록을 표시합니다.
이제 태그에 속하는 기사 목록을 표시하고 있지만 다음 오류가 발생합니다.
undefined method `article' for #<Tag id: 1, name: "various", taggings_count: 1>
모델
/article.rb
class Article < ActiveRecord::Base
acts_as_taggable
end
/user.rb
class Tag < ActiveRecord::Base
acts_as_tagger
end
제어 장치
/tags_contoller.rb
def show
@tag = Tag.find(params[:id])
@articles = @tag.articles
end
보다
/tags/show.html.erb
<% for article in @articles %>
...
<% end %>
여기에 있습니다 마이그레이션 파일에 링크.
매우 감사합니다.
해결책 3
이것을 설명하기위한 Taggable Redux의 작품 인 Geemus에게 감사드립니다.
특정 태그가있는 기사 목록을 표시하려면 Tags_Controller를 변경해야합니다.
/tags_contoller.rb
def show
@tag = Tag.find(params[:id])
@articles = @tag.articles
end
에게:
컨트롤러 /tags_contoller.rb
def show
@tag = Tag.find(params[:id])
@articles = @tag.tagged
end
다른 팁
나는 플러그인이 여기서 비난하는 것이 아니라고 생각합니다. 웹 사이트에서 언급되지 않더라도 SQLite가 'table_name.column_name'구문을 이해할 수없는 것 같습니다. 제 경우에는 방금 MySQL로 전환했고 모든 것이 문제없이 진행되었습니다. 이것이 도움이되는지 확인하십시오.
문제는 객체라는 모델이 있다는 것입니다. ApplicationObject 또는 MediaObject와 같은 Ruby System 클래스와 겹치지 않는 이름을 제공하십시오.
왜 그것이 문제를 일으키는 지에 대해 추측 할 수는 있지만 추측 일뿐입니다. 오픈 클래스는 루비의 훌륭한 특징이지만, 루비와 레일의 수업과 구별되도록 수업을 신중하게 지정해야한다는 것을 의미합니다.