JavaFree.org | RubyOnBr.org

Pegar metodo de controller

Acompanhar Pegar metodo de controller 13 posts, 6 participantes

Wyvern-luke-tuxwalker-1944 tuxuser 70 posts

Boa noite pessoal,

Estava tentando achar, mas não consegui. Como faço para pegar todos os métodos do controller que eu defini. Exemplo:

index, create, publisher

Como eu faria isso?

Obrigado.

 
Avatar Fernando Luizão 1863 posts

Só por curiosidade, pra que vc quer isso?

 
Wyvern-luke-tuxwalker-1944 tuxuser 70 posts

Bom dia Fernandão,

Eu preciso porque estou fazendo um controle de permissão por action da minha aplicação. Neste caso quero que fique dinâmico a alimentação do meu model actions.

É para isso.

 
Cad10cd22abe80cca76b7579af2906e8 Ronaldo Possan 974 posts

before_filters no seu controller não basta ?! Cada nova action que vc criar, vc adiciona ela lá.

\^/

 
Avatar Fernando Luizão 1863 posts

Não conheço nenhum método que retorne as actions de um controller… posta uma parte do que vc já fez, talvez dê uma idéia de como fazer.

 
Wyvern-luke-tuxwalker-1944 tuxuser 70 posts

Ronaldo talvez um before_filter seria uma boa, mas queria fazer isso somente quando subo a aplicação.

Eu estava tentando algo assim, mas sou péssimo em Expressão Regular. Ficara assim olha só:

Dir.open(“app/controllers”).each{|c| (File.open(“app/controllers/#{c}”).readlines.map{|line| line.match(/ ^[a-z-A-Z].* /)}.compact) unless c == ‘.’ || c == “..”}

Tanks a todos…

 
Avatar Fernando Luizão 1863 posts

Uma forma:

Mas vc vai precisar filtrar métodos privados. Ainda não entendi pra como vc vai usar isso…

 
Avatar Mereghost 1476 posts

Um instance_methods não resolve esse caso?

Tu teria que remover todos os métodos dos ancestrais para manter apenas o do Controller em questão mas acho que resolveria.

 
Avatar Fernando Luizão 1863 posts

Acho que public_methods(false) resolve =).

 
Avatar Mereghost 1476 posts

Duh! Verdade, tinha esquecido desse. =)

 
Avatar nofxx 1960 posts

Non seria?

 
Wyvern-luke-tuxwalker-1944 tuxuser 70 posts

Boa tarde Fernando e nofxx,

As duas soluções funcionaram. Obrigado a todos…

 
Avatar FabianoPS 63 posts

Que forma curiosa de fazer as coisas….. hehehehehe

Um plugin tipo o CanCan não resolve? To testando implementar ele no meu projeto e ta bem interessante porque ele cobre associações de forma inteligente…