渲染页面显示右侧页面,但URL不包含操作

时间:2017-02-22 08:20:26

标签: ruby-on-rails controller routes action render

任何人都可以告诉我为什么在rails中渲染页面时,例如:

render 'controller/action'

网址显示

/domain/controller 

而不是

/domain/controller/action  

显示了正确的页面,但网址只是控制器。

这是我的应用程序中的某个错误吗?

例如,如果我这样做:

render 'users/show'

然后会显示用户显示页面,但网址将是:

/mydomain/users

而不是我期望的:

/mydomain/users/show

1 个答案:

答案 0 :(得分:0)

这是因为Rails广泛使用REST进行URL路由。

例如:

当您的应用程序收到GET users/1请求时,系统会引用routes.rb以找出相应的controlleraction。 假设您的路径文件包含

get '/users/:id', to: 'users#show'

然后,您的请求将由show控制器的users操作处理。

有关在rails中路由的更多信息,请参阅Guide.

编辑:

要回答您的问题why doesn't the "show" action appear in the url, Rails应用程序遵循REST架构约束,称为RESTful路由,使用HTTP谓词和控制器操作的URL组合定义