Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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
如何在link-to-ruby-on-rails中传递参数_Ruby On Rails_Ruby - Fatal编程技术网

如何在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问题:i
nvalid选项:通过提供给关系:类别。
Ahh看起来Mongoid不支持这一点。
 <% @article.categories.each do |cat| %>
   <%= link_to cat.name, cat %> <br />
 <% end %>