タグ付きとして機能する(redux)を使用して、特定のタグを持つオブジェクトのグループを見つけて表示する方法は?

StackOverflow https://stackoverflow.com/questions/1019747

質問

タグのショービューで記事のリストを表示したい。 Rails 2.3.2およびSQLite3アプリでタグ付け可能な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

これを説明してくれたタグ付け可能なリデュースの作者であるGeemusに感謝します。

特定のタグを持つ記事のリストを表示するには、tags_controllerを次のように変更する必要がありました。

/tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.articles
end

to:

コントローラー /tags_contoller.rb

def show
  @tag = Tag.find(params[:id])
  @articles = @tag.tagged
end

他のヒント

このプラグインはここで責めるものではないと思います。sqliteが問題を引き起こしています。私は以前にこれに遭遇しました-ウェブサイトで言及されていなくても、sqliteは「table_name.column_name」構文を理解できないようです。私の場合は、MySQLに切り替えただけで、問題はまったくありませんでした。これが役立つかどうかを確認してください。

問題は、Objectという名前のモデルがあることです。 ApplicationObjectやMediaObjectなど、Rubyシステムクラスと重複しない名前を付けます。

それが問題の原因であると推測できますが、それは推測にすぎません。オープンクラスはRubyのすばらしい機能ですが、RubyやRailのクラスと区別できるように、クラスに注意して名前を付ける必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top