2013-05-18 3 views
-2

J'échafaudés une autorisation (user_id, code, otherparam1, ...) et je veux ajouter une méthode de custom_create à authorizations_controller qui nécessitent seulement un code, la méthode la génération des autres paramètres. J'ai besoin de cette méthode pour travailler avec JSON ou être appelé à d'autres méthodes comme User.newcustom (code)Ruby méthode personnalisée créer

def newcustom 
    case request.method 
    when :post #post 
    code = params[:code] 
    if(code and code != '') 
     ... 
     respond_to do |format| 
     if @authorization.save 
     format.html { redirect_to @authorizations, notice: 'Authorization was successfully created.' } 
     format.json { render json: @authorizations, status: :created, location: @authorization } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @authorization.errors, status: :unprocessable_entity } 
     end 
    end 
    else #get 
    respond_to do |format| 
     format.html 
    end 
    end 

Voici mon newcustom.html.erb

<%= form_tag(newcustom_authorizations_path, :method => :post) do %> 
    <div class="field"> 
    <%= text_field_tag :code %> 
    </div> 
    <div class="actions"> 
    <%= submit_tag('Get tokens') %> 
    </div> 
<% end %> 

Mais il ne fonctionne pas par JSON , la forme. Et l'appel de la méthode newcustom (: code => code) me jette un trop grand nombre d'arguments (1 pour 0). Une idée ?

+0

Où appelles-tu newcustom? –

+0

Ce n'est pas php, mec! Vous avez besoin d'actions RESTful. – MikDiet

+0

Montrez-nous le message d'erreur/trace de pile et le code référencé dans le message d'erreur. –

Répondre

0

Pour cela, ajoutez le code donné à config/routes.rb

resources :authorizations do 
    collection do 
     post :newcustom 
    end 
    end 
+0

Déjà obtenu dans mes routes.rb – Lex

0

Merci pour l'aide tout le monde.

Je fini par résoudre mon problème de filtrer les paramètres de la fonction de création, puis en appelant mon customcreate un. ET OUI JE CHERCHE :)

Questions connexes