如何在link-to-ruby-on-rails中传递参数
如何传递有关文章类别的参数。我有一篇属于文章类别的文章。当我单击此如何在link-to-ruby-on-rails中传递参数,ruby-on-rails,ruby,Ruby On Rails,Ruby,如何传递有关文章类别的参数。我有一篇属于文章类别的文章。当我单击此时,我想查看此类别中的所有文章。所以我必须将参数传递给ArticleCategoryController。我的声明链接正确吗?现在,我得到了一个“Article”而不是类别名称(当我单击它时,我得到了一个错误:Document.find要求参数为1个或多个ID,) 文章模型 class Article include Mongoid::Document include Mongoid::Timestamps fiel
时,我想查看此类别中的所有文章。所以我必须将参数传递给ArticleCategoryController。我的声明链接正确吗?现在,我得到了一个“Article”而不是类别名称(当我单击它时,我得到了一个错误:Document.find要求参数为1个或多个ID,
)
文章模型
class Article
include Mongoid::Document
include Mongoid::Timestamps
field :title, type: String
field :content, type: String
belongs_to :user
#kategorie
belongs_to :article_category
class ArticleCategory
include Mongoid::Document
include Mongoid::Timestamps
field :name, type: String
has_many :articles
end
物品控制员
class ArticlesController < ApplicationController
def article
@article = Article.order_by(created_at: 'desc').page params[:page]
end
def view_article
@article = Article.find(params[:id])
end
end
路线
resources :article_categories do
resources :articles, shallow: true
end
物品类别控制员
class ArticleCategoriesController < ApplicationController
def index
@category = ArticleCategory.find(params[:id])
@articles = @category.articles
end
end
class ArticleCategoriesController
文章视图
<p>Category: <%= link_to @article.name, article_categories_path%>
Tagi: <%= link_to "Tagi", tags_path %> </p>
类别:
塔吉:
如果您已经设置了@category变量,这将把您带到/article_categories/:id,我通常会用has-many-through做类似的事情。(我也会检查你的模型,因为它看起来像是你在模型中使用外键时有许多向后的、属于的) 然后,如果您想查看给定类别中的所有文章。然后,您可以通过CategoriesController执行此操作
class CategoriesController < ApplicationController
....
def show
@category = Category.find params[:id]
end
end
class CategoriesController
然后你应该能够通过@category.articles association获得所有文章
由于您现在的操作方式,您只能通过article_category表获得1个类别
作为对评论的回应
每篇文章将有多个类别
所以你会有这样的东西
<% @article.categories.each do |cat| %>
<%= link_to cat.name, cat %> <br />
<% end %>
按您的喜好格式化。这假设您的路线中有一个
资源:类别
,并且类别
有一个名称字段您的路线是什么样子的..为什么您要在链接中发送一个文章名作为第一个参数
?不确定您的意图。好主意,那么现在我应该如何链接到文章视图中的类别?更新后,我遇到了Mongoid问题:invalid选项:通过提供给关系:类别。
Ahh看起来Mongoid不支持这一点。
<% @article.categories.each do |cat| %>
<%= link_to cat.name, cat %> <br />
<% end %>