gpt4 book ai didi

ruby-on-rails - 路由到新操作 (Rails)

转载 作者:行者123 更新时间:2023-12-04 06:18:11 25 4
gpt4 key购买 nike

我在我的 PostsController 中有一个名为“标记”的操作,我想返回所有标记为任何术语的帖子。

在我的 routes.rb 中,我有以下内容(在顶部):

map.connect 'posts/tagged/:tag', { :controller => 'posts', :action => 'tagged', :tag => /[a-z\-]+/ }

然而导航到 posts/tagged/yes 返回 RecordNotFound 错误:

Couldn't find Post without an ID

在我的 tagged.html.erb 文件中,我最终将使用来自 acts_as_taggable_on_steroids 的 find_tagged_with 方法,但现在我已经放置了一个简单的 Post.find(:all) 来消除错误的可能性。

似乎我的 map.connect 被覆盖了,即使我注释掉除新行之外的整个 routes.rb 文件,也会出现同样的错误。

最佳答案

好的,因为您可以注释掉默认路由,这意味着您的问题根本不在您的路由中。这是你在帖子 Controller 中标记的操作可能有这样的东西。

  def tagged
@post = Post.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @post }
end
end

或者,如果您多花一点时间,它看起来像这样:

  def tagged
@post = Post.find(params[:tagged])

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @post }
end
end

你想要的是这个:

  def tagged
@post = Post.find(:all, :conditions => {:tagged => params[:tagged]})

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @post }
end
end

无论如何,您应该为这些东西编写功能测试,而不是在浏览器中进行测试。

关于ruby-on-rails - 路由到新操作 (Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/457637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com