好吧,所以我有?document_key=2343t8ujjf
附加到我的重定向url(index of my Partners Controller)
用户签署电子文档后。存储值变量
我将它存储到索引方法的类变量中。但是,我必须使用一种不同的方法(这里是显示)来实际将新密钥存储在我的数据库中,因为在更新其属性之前我必须使用@partner = Partner.find(params[:id])
,并且我不能在索引中调用@partner = Partner.find(params[:id])
,因为没有id会通过该方法的服务器。
当然,我可以用当前存在的id代替params[:id]
,但这实际上是不好的做法。我不想从按钮手动调用显示,但即使是从索引自动调用它,它也需要一个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
记住,从'index'调用'show'目前会使你错误,因为Rails会命中两个渲染指令。也许你想将更新代码分解成一个私有方法并从两个方法中调用它们,以便它们各自维护它们自己的渲染调用。 – Chowlett 2013-02-15 10:35:54
谢谢,是的,我已经把它解决了。 :-) 谢谢! – myData 2013-02-15 23:29:24