2013-05-18 2 views
-2

Я запустил авторизацию (user_id, code, otherparam1, ...), и я хочу добавить метод custom_create в authorization_controller, которому требуется только код, метод, генерирующий другие параметры. Мне нужен этот метод для работы с JSON или быть вызваны другими методами, такими как User.newcustom (код)Ruby custom create method

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 

Вот мой 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 %> 

Но это не работает через JSON , форма. И вызов метода newcustom (: code => code) бросает мне слишком много аргументов (1 для 0). Есть идеи ?

+0

Где вы называете newcustom? –

+0

Это не php, чувак! Вам нужны действия RESTful. – MikDiet

+0

Покажите нам сообщение об ошибке/трассировку стека и код, указанный в сообщении об ошибке. –

ответ

0

для этого добавьте данный код в конфиг/routes.rb

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

Уже получил это на моих маршрутах.rb – Lex

0

Спасибо за помощь всем.

В итоге я решил решить мою проблему, фильтруя параметры функции create, а затем вызвал свой собственный набор. И ДА I CHEAT :)