Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用acts_as_taggable_on显示标记链接_Ruby On Rails_Ruby_Acts As Taggable On - Fatal编程技术网

Ruby on rails 使用acts_as_taggable_on显示标记链接

Ruby on rails 使用acts_as_taggable_on显示标记链接,ruby-on-rails,ruby,acts-as-taggable-on,Ruby On Rails,Ruby,Acts As Taggable On,我有一个关于《塔格布尔》的问题。我正在制作一个BBS,想显示链接标签。但是,我的网站只能显示字符串,不能显示链接。所以我想把链接放在字符串上 我想把你链接到每个标签上 现在,一些标记保存在Tag表中,该表有以下列(id、name、created\u count) 这是我的代码: post.rb def save_tags array = self.check_taggable_word(self.title) self.tag_list.add(array, parse: true) end

我有一个关于《塔格布尔》的问题。我正在制作一个BBS,想显示链接标签。但是,我的网站只能显示字符串,不能显示链接。所以我想把链接放在字符串上

我想把你链接到每个标签上

现在,一些标记保存在
Tag
表中,该表有以下列(id、name、created\u count)

这是我的代码:

post.rb

def save_tags
 array = self.check_taggable_word(self.title)
 self.tag_list.add(array, parse: true)
end
def tag_lists
 tag_lists = self.tag_list
end
def check_taggable_word(text)
 ary = Array.new
 nm = Natto::MeCab.new
 nm.parse(text) do |n|
   ary<<n.surface
 end
 tags = ActsAsTaggableOn::Tag.pluck(:name)
 return ary & tags
end
def show
    @post = Post.find(params[:id])
    @category = @post.category
end
Rails.application.routes.draw do
 root 'static_pages#home'
 get '/about' => 'static_pages#about'
 get '/contact' => 'static_pages#contact'
 resources :categories do
  resources :posts
 end
 resources :posts do
  resources :comments
 end
 resources :tags, only: [:index, :show]
end
routes.rb

def save_tags
 array = self.check_taggable_word(self.title)
 self.tag_list.add(array, parse: true)
end
def tag_lists
 tag_lists = self.tag_list
end
def check_taggable_word(text)
 ary = Array.new
 nm = Natto::MeCab.new
 nm.parse(text) do |n|
   ary<<n.surface
 end
 tags = ActsAsTaggableOn::Tag.pluck(:name)
 return ary & tags
end
def show
    @post = Post.find(params[:id])
    @category = @post.category
end
Rails.application.routes.draw do
 root 'static_pages#home'
 get '/about' => 'static_pages#about'
 get '/contact' => 'static_pages#contact'
 resources :categories do
  resources :posts
 end
 resources :posts do
  resources :comments
 end
 resources :tags, only: [:index, :show]
end

它不太确定你想要实现什么,如果你也发布你的控制器,它可能会有所帮助

但是,可以在rails中使用link_to helper来显示链接

<% = link_to 'text', some_path %>
在控制器中的某个位置获取标记的所有条目。然后,你可以循环标记,每个标记……都可以生成所有标记的链接,如果你想链接到标记#显示链接,则必须转到找到特定标记的操作。例如,这可以是在该操作中:

@tag = Tag.find(params[:id])
。就这样

好的,我再编辑一次。尝试:

在youpostcontroller#show中,您可以像这样显示该帖子的所有标签

@post.tags.each do |tag|
<%= link_to tag.name, tag %>
@post.tags.each do| tag|
这要求标记具有属性“name”

在你的帖子中,你可以做什么

<%@post.each do |post|%>
<%post.tags.each do |tag|%>
<%= link_to tag.name, tag %><%end%><%end%>

如果您只想在不显示post等的情况下显示所有标签,请尝试:

在您的控制器帖子中#索引

@tags=Tag.all
在您当前的控制器操作帖子#show中,您将只找到该@post的标记,因为您所做的只是按id查找帖子。因此,如果关联正确,您将只找到该帖子的标记

这允许您执行
@post.tags.each do | tag |
等操作。
标记
不能用于链接到帮助程序。
如果你使用
它将向您显示一个带有tag.name的链接,该链接链接到属于帖子的每个标记的特定标记

不知道我是否理解。你在问如何制作链接吗?对于链接,你可以使用link\u-to-helper…..gem说制作这样的链接::tag,:id=>tag.name},:class=>css\u-class%>是的。我想创建标记链接。我尝试了
:tag,:id=>tag.name},:class=>css\u class%>
但是
参数数量错误(1..4为0)
显示错误。很抱歉,我创建了一个答案,注释刚刚被复制,不一定适用于您的代码。非常感谢KcUS\u unico。我添加了两个标记,然后尝试了上面的代码,但是
参数数量错误(1代表2)
显示错误。try:这段代码看起来很有效。但此链接指向(…/posts/“tag.name”)的路径。我想要找到(…/tags/“tag.name”)的路径。非常感谢KcUS_unico.Ya,您需要在routes.rb中有一个用于此操作的路由。有吗?谢谢KcUS!我只是将我的routes.rb更新到上面。
@tags = Tag.all 

<%@tags.each do |tag|%>
<%= link_to tag.name, tag %><%end%>