【问题标题】:Ruby Gem simple_hashtag not working in RailsRuby Gem simple_hashtag 在 Rails 中不起作用
【发布时间】:2016-03-25 22:04:12
【问题描述】:

我正在尝试让“#”之前的文本成为我的 Rails 4.0.0 应用程序中的主题标签。我正在尝试使用红宝石宝石simple_hashtag 为了这个目的。我在post_controller.rb 中遇到的错误是:undefined method 'hashtags' for #<ActiveRecord::Relation::ActiveRecord_Relation_Post...>

这是发生此错误的操作:

def index
      @posts=Post.sorted
      @posts.hashtags.each do |hashtag|
        link_to hashtag.name, path_to_hashtag(hashtag.name)
      end
  end

这是 Post 的模型,即post.rb

class Post < ActiveRecord::Base
    include SimpleHashtag::Hashtaggable
    hashtaggable_attribute :text
end

有人可以帮我运行这个 gem 吗?提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 rubygems hashtag


    【解决方案1】:

    gem 没有被积极维护。最后一次提交已经是2 years old。它可能不适用于最新版本的 Rails。

    【讨论】:

    • 这是不正确的。它实际上可以直接与最新的导轨一起使用
    【解决方案2】:

    由于错误是hashtags 方法不适用于ActiveRecord::Relation::ActiveRecord_Relation_Post...&gt;

    因为主题标签是 SimpleHashtag::Hashtag 类的对象。此外,此 gem 将创建 simple_hashtag_hashtags 表。

    simple_hashtag_hashtags 不应为空。如果此返回为空白,则表示没有记录,并且会以undefined 的形式抛出错误。如果表没有记录,您似乎会犯任何错误。

     def index
       @hashtags = SimpleHashtag::Hashtag.all
       @hashtags.each do |hashtag|
        link_to hashtag.name, path_to_hashtag(hashtag.name)
       end
      end
    

    【讨论】:

    • 你能告诉我们 SimpleHashtag::Hashtag.all 正在返回什么吗?
    • 结果如下:SimpleHashtag::Hashtag Load (0.0ms) SELECT 'simple_hashtag_hashtags'.* FROM 'simple_hashtag_hashtags' =&gt; #&lt;ActiveRecord::Relation []&gt;
    • @Muhammad 你能告诉我们我们的答案是否对你有用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2013-12-26
    相关资源
    最近更新 更多