我现在正在使用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
。
非常感谢!
答案 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"