Ruby on Rails:如何使用不同的控制器 link/route 从一个 view/page 到另一个 view/page

Ruby on Rails: How to link/route from one view/page to another view/page with a different controller

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

app/views/static_pages/mission.html.erb

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

app/views/home/home.html.erb

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

有人可以帮忙吗?

你问的可以这样实现:

在你的routes.rb中:

get "/path/to/your/mission/page", to: "static_pages#mission", as: "mission"

然后在你的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

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

从任何其他模板 link 到任务页面,您只需将 link 指向它,就像这样:

<%= link_to "Mission Page", mission_path %>

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

<a href="/path/to/your/mission/page">Mission Page</a>

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

希望对您有所帮助!