Rails路由到另一个目录
Rails routing to another directory
有没有办法让路由使用不在预期文件夹中的视图?
这是我的问题...我正在为我的 Reports
创建一个新视图,但是我收到 Missing template v1/reports/index
错误。
routes.rb
api_version(module: "V1", path: { value: "v1" }) do
resources :reports, only: [:create, :index]
end
views/reports/index.html.erb
<h3>Just some test content</h3>
controllers/v1/reports_controller.rb
class V1::ReportsController < ApplicationController
def index
@company = current_user.company
reports = if @company
@company.reports.order("created_at DESC")
else
[]
end
end
end
_导航.html.erb
<%= link_to "Reports", v1_reports_path, role: "menuItem" %>
我使用 apipie
为我的应用程序创建了一些 API,它在我的应用程序中的 'v1' 目录下有许多控制器,现在在我扩展我的应用程序时引起了一些问题应用程序(我认为)。我不想重做结构,所以希望有一种方法可以引导路由使用 views/reports/
下的视图,而不是 v1/reports/
下的视图,这正是它正在寻找的不存在的视图.
...或者我还必须创建一个 `views/v1/reports/index.html.erb' 文件?
你应该能够告诉你的控制器渲染什么路径
class V1::ReportsController < ApplicationController
def index
@company = current_user.company
reports = if @company
@company.reports.order("created_at DESC")
else
[]
end
end
render '/path/to/views/reports/index.html.erb'
end
请参阅 render method
文档的第 2.2.3 节和第 2.2.5 节
尽管如此,您应该使用 rails 希望您使用的目录。主要是因为如果有一个 v2 控制器在路上,你会把它的视图放在哪里?
有没有办法让路由使用不在预期文件夹中的视图?
这是我的问题...我正在为我的 Reports
创建一个新视图,但是我收到 Missing template v1/reports/index
错误。
routes.rb
api_version(module: "V1", path: { value: "v1" }) do
resources :reports, only: [:create, :index]
end
views/reports/index.html.erb
<h3>Just some test content</h3>
controllers/v1/reports_controller.rb
class V1::ReportsController < ApplicationController
def index
@company = current_user.company
reports = if @company
@company.reports.order("created_at DESC")
else
[]
end
end
end
_导航.html.erb
<%= link_to "Reports", v1_reports_path, role: "menuItem" %>
我使用 apipie
为我的应用程序创建了一些 API,它在我的应用程序中的 'v1' 目录下有许多控制器,现在在我扩展我的应用程序时引起了一些问题应用程序(我认为)。我不想重做结构,所以希望有一种方法可以引导路由使用 views/reports/
下的视图,而不是 v1/reports/
下的视图,这正是它正在寻找的不存在的视图.
...或者我还必须创建一个 `views/v1/reports/index.html.erb' 文件?
你应该能够告诉你的控制器渲染什么路径
class V1::ReportsController < ApplicationController
def index
@company = current_user.company
reports = if @company
@company.reports.order("created_at DESC")
else
[]
end
end
render '/path/to/views/reports/index.html.erb'
end
请参阅 render method
文档的第 2.2.3 节和第 2.2.5 节尽管如此,您应该使用 rails 希望您使用的目录。主要是因为如果有一个 v2 控制器在路上,你会把它的视图放在哪里?