-2

私は Authorization(user_id, code, otherparam1, ...) をスキャフォールディングし、コードのみを必要とする custom_create メソッドを authorizations_controller に追加したいと考えています。このメソッドは他のパラメーターを生成します。このメソッドは、json で動作するか、User.newcustom(code) などの他のメソッドで呼び出される必要があります。

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) を呼び出すと、引数が多すぎます (0 に対して 1)。何か案が ?

4

2 に答える 2

0

みんな助けてくれてありがとう。

create関数のパラメータをフィルタリングしてから、customcreate関数を呼び出すという問題を解決することになりました。はい、私はチートします:)

于 2013-05-19T17:24:49.063 に答える
0

このために、指定されたコードを config/routes.rb に追加します

  resources :authorizations do
    collection do 
      post :newcustom
    end
  end
于 2013-05-18T15:03:07.710 に答える