{"id":2749,"date":"2015-04-05T13:47:08","date_gmt":"2015-04-05T11:47:08","guid":{"rendered":"https:\/\/sgaul.de\/?p=2749"},"modified":"2015-04-05T13:47:22","modified_gmt":"2015-04-05T11:47:22","slug":"weniger-abstraktion-ist-manchmal-mehr","status":"publish","type":"post","link":"https:\/\/sgaul.de\/2015\/04\/05\/weniger-abstraktion-ist-manchmal-mehr\/","title":{"rendered":"Weniger Abstraktion ist manchmal mehr"},"content":{"rendered":"
Zun\u00e4chst\u00a0war ich kritisch: Kann ein Konferenzbeitrag \u00fcber Routing-Ans\u00e4tze<\/a> brauchbare Erkenntnisse bieten? Schlussendlich ist das Routing ein sehr kleiner Teil und Rails liefert einen funktionierenden Ansatz mit. Performance-Spr\u00fcnge im gesamten Kontext\u00a0sind nicht zu erwarten.<\/p>\n Interessant finde ich aber, wie\u00a0durch das Entfernen der Abstraktion zwischen Router und Controller wesentliche Konzepte vereinfacht werden k\u00f6nnen. So lassen sich die unsch\u00f6nen Before-Action-Hooks samt Only-Beschr\u00e4nkungen viel eleganter ausdr\u00fccken:<\/p>\n <\/p>\n Dieser verschachtelte Ansatz erlaubt einen intuitiveren Blick auf das Geschehen, als es beispielsweise bei stark getrennten Ans\u00e4tzen wie Rails der Fall ist:<\/p>\n Wer sich f\u00fcr einen solchen Routing-Tree-Ansatz interessiert, sollte sich einmal Roda<\/a> ansehen.<\/p>\n","protected":false},"excerpt":{"rendered":" Zun\u00e4chst\u00a0war ich kritisch: Kann ein Konferenzbeitrag \u00fcber Routing-Ans\u00e4tze brauchbare Erkenntnisse bieten? Schlussendlich ist das Routing ein sehr kleiner Teil und Rails liefert einen funktionierenden Ansatz mit. Performance-Spr\u00fcnge im gesamten Kontext\u00a0sind nicht zu erwarten. Interessant finde ich aber, wie\u00a0durch das Entfernen der Abstraktion zwischen Router und Controller wesentliche Konzepte vereinfacht werden k\u00f6nnen. So lassen sich die… Weniger Abstraktion ist manchmal mehr<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[91],"tags":[527,553,552],"_links":{"self":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/2749"}],"collection":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/comments?post=2749"}],"version-history":[{"count":8,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/2749\/revisions"}],"predecessor-version":[{"id":2757,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/2749\/revisions\/2757"}],"wp:attachment":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/media?parent=2749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/categories?post=2749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/tags?post=2749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}route.is 'users' do\r\n authorize_user_session!\r\n\r\n route.get do\r\n @users = User.all\r\n view(:index)\r\n end\r\n\r\n route.is ':id' do |id|\r\n @user = User.find(id)\r\n \r\n route.get do\r\n view(:edit)\r\n end\r\n \r\n route.post do\r\n @user.update(params[:user])\r\n redirect_to action: :show\r\n end\r\n end\r\nend<\/pre>\n
# Routes\r\n\r\nresouces :users, only: [:index, :show, :update]\r\n\r\n# UsersController\r\n\r\nbefore_action :authorize_login\r\nbefore_action :assign_user, only: [:show, :update]\r\n\r\ndef index\r\n @users = User.all\r\nend\r\n\r\ndef edit\r\nend\r\n\r\ndef update\r\n @user.update(params[:user])\r\n redirect_to action: :show\r\nend\r\n\r\nprivate\r\n\r\ndef assign_user\r\n @user = User.find(params[:id])\r\nend<\/pre>\n