Ruby on rails在一个html页面

时间:2017-01-09 13:39:42

标签: ruby-on-rails

我现在正在使用ruby on rails进行一个职位列表项目。我创建了一个名为job的模型,它记录了列表上的作业和一个名为jobs的控制器来控制动作。并且每个作业属于一个类别,例如IT,财务等。我想添加一个按钮供用户选择,例如IT领域的工作。我试过了

rails g controller it/jobs

it_jobs_controller

def index
   @jobs = Job.where(:field => "IT")
end

以上效果很好。 我还尝试在jobs控制器中添加方法

def get_it
    @jobs = Job.where(:field => "IT")
end

并在config/routes

resources :jobs do
    member do
        get :get_it
    end
end

但似乎我需要添加params[:id]来链接到该页面,但这不是我想要的。 任何人都可以告诉我如何添加index页面这样的页面,但不能创建新的controller

非常感谢!

2 个答案:

答案 0 :(得分:1)

根据您的要求,您应该再添加一个模型Category

该协会将app / models / category.rb

class Category < ActiveRecord::Base
   has_many :jobs
end

应用程序/模型/ job.rb

class Jon < ActiveRecord::Base
   belongs_to :category
end

配置/ routes.rb中

resources :categories do
  resources :jobs, on: :member
end

通过这种方式,您可以在一个类别中创建多个作业。 如果您可以查询,请告诉我。

答案 1 :(得分:0)

你必须使用:

resources :jobs do
    collection do
        get :get_it
    end
end

该路线将为jobs/get_it

此外,要调试此类问题,请查看rails routes的输出(在控制台中发出此命令)。

如果您想拥有自定义路线(例如it/jobs),可以这样做:

get `it/jobs` => "jobs#get_it"