相关文章
更多最近更新
更多如何设计一个漂亮的路由
2019-03-25 13:40|来源: 网路
先简单说一下我的情况:有一个posts的controller,它负责CRUD等一系列操作,现在有一个需求是列出“我评论过的文章”的列表,最初我是这样设计的
in app/controllers/posts_controller.rb
def my_replied # ignore codes end
这样写有一个好处,就是产生的路由很易懂,如浏览器的地址栏会显示/posts/my_replied,在ERB文件中书写路由时是my_replied_posts_path,这甚至和英文表达的方式几乎一致,所以这是一种漂亮的表达方式。
现在突然需要列出很多和“我的”相关的需求,如“我小组中的文章”,“我回答过的”,“我自己发表的”等等,所以我打算把这个controller移到目录my下面,变成了app/controllers/my/posts_controller.rb,这时的action还和上面一样,但路由的写法就变了
in routes.rb
namespace :my do resources :posts do collection do get :my_replied end end end
这时在地址栏显示的内容就成了/my/posts/my_replied,看,有一个多余的“my”,在ERB文件中显得更加不易读,变成了my_replied_my_posts_path。
不知道各位是否遇到过这个情况,或者在这个过程中我是否做了不必要的东西?
问题补充
这样貌似不能将那个前缀隐藏吧, 它只会给路由添加额外的字符串
ps: 我当时在设计这个路由的时候还考虑了这么一个情况, 即通过路由可以猜到对应的文件在哪, 这样也算是易读的其中一方面吧. 所以隐藏"my"后感觉不是一个好的办法.
不知道这样是不是有点自己和自己矛盾了
相关问答
更多-
推荐一些Java Gui 设计的视频教程。 高级点的。我想做漂亮点的界面[2023-06-18]
我也想知道,占座学习^_^ -
用 java swt设计漂亮界面[2022-08-06]
去eclipse官网下载一个swt designer 免费版的可以使用14天 里面可以拖拽很多组建 可以把按钮背景设为图片 刚用它做的课程设计 很漂亮 -
#config/routes.rb resources :users do resources :images end 这是一个深度。 #config/routes.rb resources :users do resources :images do resources :comments end end 这不仅仅是一个层次。 正如您所引用的资源所看到的,问题不是无法匹配资源,而是处理流程。 例如... #app/controllers/comments_controll ...
-
设计路由问题(Devise Routing Problems)[2022-03-05]
试试这个: devise_scope :user do get "/signin" => "devise/sessions#new" match '/signin' => 'devise/sessions#new' get "/signout" => "devise/sessions#destroy" match '/signout' => 'devise/sessions#destroy' end 资料来源: https : //github.com/plata ... -
MVC中的漂亮分页路由(Pretty Paged Routing in MVC)[2022-04-04]
我最终让它像这样工作。 但诚实地说,这是通过反复试验。 如果有人可以解释它为什么有效,我相信这对访客非常有帮助。 routes.MapRouteLowercase( "HomePaging", "{controller}", new { controller = "Home", action = "Index", page = UrlParameter.Optional }, new { page = @"\d+" }, new[] { "MySite.Control ... -
使用total.js进行漂亮的路由(比如'base_url / @ username')(Pretty routing with total.js (like 'base_url/@username'))[2020-12-23]
您必须从路线中删除@ : exports.install = function() { F.route('/{username}/', view_user); }; function view_user(username) { if (!username.startsWith('@')) { this.throw404(); else this.plain(username); }); 谢谢。 You must remove @ from the ... -
为了满足您的要求,您需要创建一个CustomControl 。 您可以在WPF Tutorial.net上的如何创建WPF自定义控件页面中找到基本教程,但您需要做的不仅仅是在那里显示。 您可以在WPF Control Development Unleashed书中找到更好的教程,幸运的是,有人在这里上传了PDF版本......请看第3章。 In order to fulfil your requirements, you will need to create a CustomControl. You ca ...
-
去/etc/apache2/apache2.conf文件,并确保它看起来像这样:
Options Indexes FollowSymLinks Allowoverride All Require All Granted 你可以在之后找到它.... 执行mod_rewrite并重新启动Apache,它应该工作! This is how ... -
如何为我的Android应用程序设计一个漂亮的UI [关闭](How can i design a beautiful UI for my android application [closed])[2023-05-23]
Android设计 。 看起来像一个合法的地方,从一个广泛的问题开始。 Android Design. Seems like a legit place to start with a question this broad. -
routes.php文件 $route['order/thank_you/(:num)'] = 'thanks/thank_you/$1'; 左侧是用户访问的URL。 右边是你要求去的地方。 例如,请求example.com/order/thank_you/344将转到Controller thanks功能thank_you() 。 $1是论点。 如果有多个,只需/$1/$2/ 。 控制器 public function friends_profile ($id = NULL) { echo " ...