ユーザーが電子ドキュメントに署名した後?document_key=2343t8ujjf
、リダイレクト先に追加されました。url(index of my Partners Controller)
これを index メソッドのクラス変数に格納しています。ただし、属性を更新する前に使用する必要があり、IDがサーバーを介して渡されないため、インデックス@partner = Partner.find(params[:id])
を呼び出すことができないため、新しいキーを実際にデータベースに保存するには、別のメソッド(ここでは表示)を使用する必要があります。@partner = Partner.find(params[:id])
その方法。
もちろん、params[:id]
現在存在する ID に置き換えることはできますが、それは非常に悪い習慣です。ボタンから手動で show を呼び出したくありませんが、インデックスから自動的に呼び出しても、ID が必要です。
これを回避する方法はありますか?
class PartnersController < ApplicationController
# GET /partners
# GET /partners.json
def index
@@agreement_key = params[:documentKey]
logger.info "Key: #{@@agreement_key}"
@partners = Partner.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @partners }
end
show # could also just paste parts of show into index but same problem
# other than being able to then use just ivar.
end
# GET /partners/1
# GET /partners/1.json
def show
@partner = Partner.find(params[:id])
logger.info "Key: #{@@agreement_key}"
@partner.update_attributes(
{
:agreement_key => @@agreement_key
}
)
respond_to do |format|
format.html do
redirect_to signed_path( partner_id: @partner.id )
end
format.json { render json: @partner }
end
end