(序文: 私は Rails を学び始めて 10 か月になるので、これは初歩的なミスかもしれません。)
私のアプリには、それらに関連付けられているVenues
ものがあります。VenueCategories
私の見解では、ユーザーが Twitter でVenue
共有するときに、いくつかのハッシュ タグを共有コンテンツに入力したいと考えています。このために、VenueCategory で呼び出されるVenue
メソッドを作成しました (理想的な実装ではないかもしれませんが、後でリファクタリングする予定です) 。hash_tags
まず、これをVenueCategoriesHelper.rbに入れ、コンソールで呼び出してテストすると NoMethodError が発生しました。メソッドをテストするためだけにモデルとコントローラーの両方に移動しましたが、同じ結果が得られました。
venue_category
をパラメーターとして渡して、または渡さずにメソッドを定義しようとしました。
私は何を間違っていますか?以下の関連コード。
VenueCategoriesHelper.rb
def hash_tags(venue_category)
hash_tags = []
hash_tag_string = ""
if venue_category.name == "Restaurant"
hash_tags << "#restaurants"
elsif venue_category.name == "Salons & Spas"
hash_tags << ["#salons", "#spas"]
elsif venue_category.name == "Hotels & Resorts"
hash_tags << ["#hotels", "#resorts"]
elsif venue_category.name == "Bars & Nightlife"
hash_tags << ["#bars", "#nightlife"]
end
hash_tags.each do |h|
hash_tag_string << "#{h} "
end
end
show.html.slim (ランダムなスニペットをビューに追加してテストする
...
p = resource.venue_category.hash_tags(resource.venue_category)
#header-module
#overall-score-container
#overall-score-header
...
コンソールからのエラーとブラウザでの実行時のエラー
NoMethodError: undefined method `hash_tags' for #<VenueCategory:0x007ff2134b69c0>
事前にすべての助けに感謝します!