0

在我_updates.html.haml的 Rails 应用程序的主页视图中的文件中,我正在使用@posts = Post.tagged_with(params[:tag])我的主页控制器中的 访问一堆帖子。我正在进行每次迭代,@posts并试图在标签名称前添加一个“#”符号,以便“#”是 link_to 语句中链接的一部分。

我正在尝试以下操作,但出现类型错误。

  %ul
    - post.tags.each do |tag|
      - tag_plus_hash = '#' + tag
      %li= link_to tag_plus_hash, posts_path(tag: tag.name)

我的错误如下:

can't convert ActsAsTaggableOn::Tag into String
4

1 回答 1

1

尝试调用该方法to_s,就像这样

  %ul
    - post.tags.each do |tag|
      - tag_plus_hash = '#' + tag.to_s
      %li= link_to tag_plus_hash, posts_path(tag: tag.name)

甚至更好,使用插值

  %ul
    - post.tags.each do |tag|
      - tag_plus_hash = "##{tag}"
      %li= link_to tag_plus_hash, posts_path(tag: tag.name)
于 2013-07-24T23:10:13.750 回答