Ruby on Rails:如何使用不同的控制器从一个视图/页面链接/路由到另一个视图/页面

Cat*_*ria 3 routes views ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我的 Rails 应用程序的以下文件中有一个视图模板:

app/views/static_pages/mission.html.erb
Run Code Online (Sandbox Code Playgroud)

我想从不同文件夹中的视图模板链接到该页面(对应于应用程序中的不同页面):

app/views/home/home.html.erb
Run Code Online (Sandbox Code Playgroud)

我不知道missionStaticPagesController. 我也是 Rails 的新手。我也不知道如何为它编写路由,我怀疑我可能需要在我的routes.rb文件中编写一个 get 'something' 。

有人可以帮忙吗?

Zor*_*ran 8

您所要求的可以通过这种方式完成:

在你的routes.rb 中

get "/path/to/your/mission/page", to: "static_pages#mission", as: "mission"
Run Code Online (Sandbox Code Playgroud)

然后在您的static_pages_controller.rb 中

class StaticPagesController < ApplicationController

  # You can leave the mission method blank, it will render
  # the corresponding static_pages/mission.html.erb by default

  def mission
  end

end
Run Code Online (Sandbox Code Playgroud)

这应该设置静态页面,以便当您访问: 时localhost:3000/path/to/your/mission/page,您应该能够看到呈现的mission.html.erb 页面。

要从任何其他模板链接到任务页面,您只需指向它的链接,如下所示:

<%= link_to "Mission Page", mission_path %>
Run Code Online (Sandbox Code Playgroud)

或者,由于它是一个静态页面,您可以将路径硬编码到标记中:

<a href="/path/to/your/mission/page">Mission Page</a>
Run Code Online (Sandbox Code Playgroud)

由于您是 Rails 的新手(顺便说一句,欢迎来到 Rails 的世界:D),我希望您发现这些非常有用的资源:

希望这是有帮助的!