Se caso você precise usar rotas dentro do Model por algum motivo, aqui vai a dica, faça o include ActionController::UrlWriter no seu Model. Isso vai deixar disponível os métodos de geração de urls.
Por exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | class NodeType < ActiveRecord::Base include ActionController::UrlWriter # ações realizadas após criar after_create :create_backend_menu # ações realizadas após apagar before_destroy :destroy_backend_menu # cria o menu para o conteúdo def create_backend_menu root = BackendMenu.find_by_path('admin_create_content_index_path') path = new_admin_node_type_node_path(self) root.children.create(:title => self.name, :path => path, :weight => 1, :is_active => true, :description => self.description) end # apaga o menu para o conteúdo def destroy_backend_menu path = new_admin_node_type_node_path(self) menu = BackendMenu.find_by_path(path) menu.destroy end end |
Até mais!
Se você gostou desse texto e acha que ajudou você, me recomende:
.

Oi Patrick! Muito boa, mas se eu quisesse pegar o nome do controller que está salvando neste model, tem como?
Essa parte de pegar o nome do controller eu não sei ainda como fazer, mas acredito que exista alguma forma.
Cara, teu modelo num está meio estranho não? Tu ta armazenando o path dentro do Model, ta usando rotas dentro de um Model.
Sinceramente ta meio POG isso :P
Objetivo desse post não é discutir o código, apenas deixar a dica, se em algum momento da sua vida você precisar das rotas dentro do model a solução está ae.
Não achei seu comentário muito pertinente.
Patricke, o problema é que com esse post, quem não sabe que isso não deve ser usado, acaba usando.
Nesse caso, seria bom que deixasse claro logo no início que isso só deve ser feito em ocasiões fora do comum, e não sempre, pois não segue as convenções do Rails.
Quem disse que isso não deve ser usado?
Existe N aplicações e N necessidades, no sistema que estou desenvolvendo surgiu essa necessidade e não é POG e sim um sistema avançado de gerenciamento de menus, ações e permissões.
A grande sacada da internet é isso, a informação está ae, cada um usa como quer e tira suas próprias conclusões.
Como mencionado no início do post: “Se caso você precise usar rotas dentro do Model por algum motivo, aqui vai a dica, faça o include ActionController::UrlWriter no seu Model. Isso vai deixar disponível os métodos de geração de urls.”
Não estou preocupado por que você quer usar, o que você vai fazer ou deixar de fazer, isso é problema seu. Só deixei a dica. Também não estou preocupado se o código é ou não é POG, mas sim resolver uma necessidade, que muitas outras pessoas na web já tiveram.
Qualquer comentário abaixo desse sobre esse assunto não vou responder, esse assunto do uso ou não das rotas dentro do model não é objetivo desse post.
Caraa…
ser nerd deve ser mtooo chato mesmo!Pelo amor de Deus…vão arrumar uma namorada, tomar sorvete, sair pra beber…qqr coisa!
quem sabe assim vcs param de discutir coisas tão bestas!Se vai usar o que tá postado ou não…é um departamento próprio de cada um gente!Nem acredito q um bando de piá perde tempo discutindo isso…que xiitas…
nerds fundando uma religião própria! hahahahaha
Meio estranho seus models terem acesso a routing.
Basicamente, concordo com que o Mauricio disse acima.