大家好, 我正在使用 Rails 4.2.0 所以我创建了三个脚手架,但需要为我的模型之一添加额外的 View 。
我有一个站点和驻留模型,我希望完成的是创建一个通过站点显示页面上的链接直接返回到站点的驻留者。
在我的站点 Controller 中,我有以下内容。
def new_site_resident
@site.residents.create(resident_params)
end
和
def resident_params
params.require(:resident).permit(:site_id, :unit_number, :f_name, :m_name, :l_name, :dob)
end
我有我的路线文件夹
get "/sites/:id/new_site_resident"
并尝试获取“/sites/new_site_resident
当我使用 get "/sites/new_site_resident 时,它会返回此错误:
Couldn't find Site with 'id'=new_site_resident
^^ 我确信这告诉我它正在寻找一个以此为 id 的网站。
当我在routes.rb中使用get“/sites/id/new_site_resident”时,然后尝试转到: http://localhost:3000/sites/1/new_site_resident它给出的错误是:
No route matches [GET] "/sites/1/new_site_resident"
不太确定该去哪里?但正如我之前所说,我希望能够查看该网站,然后能够直接在该链接中创建一个与该网站关联的驻留程序,而无需手动输入网站 ID,因为最终用户会知道该网站id 是。
当前的routes.rb 文件。
Rails.application.routes.draw do
root 'home#index'
resources :sites
resources :vehicles
resources :residents
get "/sites/:id/new_site_resident"
devise_for :users, controllers: { registrations: "registrations" }
最佳答案
要创建操作的路由,您可以使用资源
:
resources :sites do
member do
get :new_site_resident
end
end
然后你就可以删除
get "/sites/:id/new_site_resident"
关于ruby - 添加 View ,然后在 Rails 中正确路由它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29911752/