Ruby on rails Rails循环遍历两个类别id,使它们成为一个订单

Ruby on rails Rails循环遍历两个类别id,使它们成为一个订单,ruby-on-rails,ruby,ruby-on-rails-4,rails-activerecord,nested-attributes,Ruby On Rails,Ruby,Ruby On Rails 4,Rails Activerecord,Nested Attributes,Rails.application.routes.draw do 为:用户设计 资源:就业 根“jobsindex”仅为提供信息,您在else语句中设置了两次@jobs。除非更改变量名,否则只考虑第二个@Jobs 我同意@Max Williams你的if参数[:jobcategory | |:category2]。空白?应该按照他提议的方式写 如果要循环处理作业的两个属性,可以执行@Jobs=Job。其中[jobcategory=?和category2=?,@jobcategory\u id,@

Rails.application.routes.draw do 为:用户设计 资源:就业
根“jobsindex”仅为提供信息,您在else语句中设置了两次@jobs。除非更改变量名,否则只考虑第二个@Jobs

我同意@Max Williams你的if参数[:jobcategory | |:category2]。空白?应该按照他提议的方式写

如果要循环处理作业的两个属性,可以执行@Jobs=Job。其中[jobcategory=?和category2=?,@jobcategory\u id,@category2\u id]

资源:

编辑答案:

在您的视图中,您使用link_到category2.name、jobs_路径category2:category2.name和link_到jobcategory.name、jobs_路径jobcategory:jobcategory.name,但您的路由中未定义此选项。 在路线中修改此选项:

resources :jobs do 
  get 'jobcategory/:name_jobcategory', to: 'jobs#index', as: :job_category
  get 'category2/:name_category2', to: 'jobs#index', as: :category2
end
那么在你看来,

链接到category2.name,作业链接到category2:category2.name,链接到jobcategory.name,作业链接到jobcategory:jobcategory.name

需要替换为:

链接到category2.name、category2\u路径category2.name并链接到jobcategory.name、job\u category\u路径jobcategory.name

现在,您可以为控制器获取参数[:name\u jobcategory]和参数[:name\u category2]:

def index
        if params[:name_jobcategory].blank? && params[:name_category2].blank?
            @jobs = Job.all.order("created_at DESC")
        else
            @jobcategory_id = Jobcategory.find_by(name: params[:name_jobcategory]).id
            @category2_id = Category2.find_by(name: params[:name_category2]).id
            @jobs = Job.where(["jobcategory = ? and category2 = ?", @jobcategory_id, @category2_id]).order("created_at DESC")
        end
    end

如果参数[:jobcategory | |:category2]为空,您会这样说吗?如果参数[:jobcategory].blank?&¶ms[:category2]。blank?@Max Williams:我对一个作业有两个单独的类别,现在如何按两个单独的类别查看作业,我不确定如何执行此操作。。。。我不知道。@MaxWilliams:是的,我想循环查看jobcategory和category2,问题是只有jobcategory出现了,category2给出了错误'id'表示为零:NilClass@Antonie谢谢你提供的信息,我已经尝试过循环两个属性,但无法获得nil的错误“id”:nilclass重试,但重置db并重新填充它以进行测试!您可以发布错误消息吗?@Antonie:NoMethodError在JobsControllerindex中,未定义nil:NilClass的方法'id',@jobcategory\u id=jobcategory.find\u byname:params[:jobcategory].id。问题是在代码:jobcategory.find\u byname:params[:jobcategory].id中找不到与find\u byname一起的记录,因此它返回nil。如果未找到任何记录,则不能对不存在的记录使用id方法。您是否有现有的工作类别记录?如果是,那么您的参数[:jobcategory]没有返回匹配的名称,在这种情况下,您需要编辑您的问题并显示视图代码,以便我能够理解参数如何获得输入+如果可能,您的db模式。谢谢我们要解决这个问题我想我找到你的问题了你能先告诉我你的路线吗?这样我就可以编辑我的答案了?