(前言:我已经学习 Rails 10 个月了,所以这可能是一个非常新手的错误。)
我的应用程序与Venues
它们VenueCategories
相关联。在我看来,当用户分享到 TwitterVenue
时,我想将一些哈希标签填充到分享内容中。Venue
为此,我创建了一个hash_tags
在 VenueCategory 上调用的方法(尽管可能不是一个理想的实现,稍后会考虑重构)。首先,我将它放在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>
提前感谢您的任何帮助!