Ruby on rails RubyonRails 4路由/视图/路径

Ruby on rails RubyonRails 4路由/视图/路径,ruby-on-rails,Ruby On Rails,我有两个问题: 我有一个叫做主页的控制器。我在主页的视图目录中有一个名为samplegraph的视图。我想让路由正常工作,以便www.homepage.com/samplegraph将我带到samplegraph页面。 据我所知,routes.rb中的路由应该是这样的: GET 'homepage/samplegraph' => 'homepage#showgraph1' 如果我正确理解了rails路由,那么这个语句将GET请求路由到homepage/samplegraph,再路由到ho

我有两个问题:

我有一个叫做主页的控制器。我在主页的视图目录中有一个名为samplegraph的视图。我想让路由正常工作,以便www.homepage.com/samplegraph将我带到samplegraph页面。

据我所知,routes.rb中的路由应该是这样的:

GET 'homepage/samplegraph' => 'homepage#showgraph1'
如果我正确理解了rails路由,那么这个语句将GET请求路由到homepage/samplegraph,再路由到homepage控制器的showgraph1操作。此时,我不太确定showgraph1操作应该是什么,以便呈现视图页面(samplegraph)。此时此刻,这个动作简直是空的。我真的不知道该在这里放什么

第二个问题:

另外,当我研究rails路由时,我正在研究基于资源的路由。就我的目的而言,我不需要它产生的大部分东西。我感兴趣的一件事是,调用基于资源的路由自动通过助手为您生成路径(我想是吧?)


我如何为我的路线生成路径,以便我能够使用link_to方法将应用程序的各个部分链接在一起?如有任何帮助/意见,将不胜感激

首先,如果你想通过点击“www.homepage.com/samplegraph”来获得“samplegraph”页面,你需要更新你的路线

替换

get 'homepage/samplegraph' => 'homepage#showgraph1'

现在,在您的
主页
控制器的
showgraph1
操作中,您需要在操作的最后一行呈现
samplegraph
查看页面

render 'samplegraph'

对于第二个问题,只需从应用程序目录中点击终端上的“rake routes”
。它将显示所有带有助手的路由,您可以使用
link\u to
。当使用with
link\u to
时,您需要将
\u路径
附加到这些路由,就像
@RAJ
所说的,首先您需要将路由更改为

get '/samplegraph' => 'homepage#showgraph1'
此时,我不太确定showgraph1操作应该是什么,以便呈现视图页面(samplegraph)

Rails不关心您的操作是否为空,即使它为空,它仍然会呈现您的操作视图。因为您的操作名为showgraph1,所以Rails将使用路径视图/homepage/showgraph1.html.erb查找showgraph1.html.erb

要更改此行为,您需要在操作中使用
render'samplegraph'

我感兴趣的一件事是,调用基于资源的路由自动通过助手为您生成路径(我想?

Rails为每个路由生成路径和url帮助程序,它不取决于路由的定义方式,但是您可以通过指定选项来自定义帮助程序方法


这将使您的助手方法变得非常好!由于您是SO新手,我想建议您,作为一名优秀的学习者和贡献者,您应该接受解决问题的答案有没有办法将多个答案标记为有帮助?Mandeep的回答帮助我解决了助手/路径问题。对不起。。这是不可能的:(您不能接受多个答案,但您可以投票支持多个…好的,因此我的操作不是第一次呈现的,因为我的操作名称和视图名称不对应。@user3731368这是因为默认情况下rails会查找与您的操作同名的视图。您需要在操作中使用renderAlso提及它,因此如果我想使用link_to为了在我的页面之间创建链接,会是这样吗?@user3731368 yeah showgraph_path将为您提供路径帮助程序。您可以通过在终端中运行rake routes来查看所有帮助程序方法
get '/samplegraph' => 'homepage#showgraph1'
get 'homepage/samplegraph' => 'homepage#showgraph1', as: 'showgraph'