2013-10-15 75 views
0

我在我的控制器下面的方法:傳遞局部變量的部分在軌2.X

def update_fees_collection_dates_voucher 
    @batch = Batch.find(params[:batch_id]) 
    @dates = @batch.fee_collection_dates 
    render :update do |page| 
     page.replace_html "fees_collection_dates", :partial =>"fees_collection_dates_voucher" 
    end 
end 

的方法調用_fees_collection_dates_voucher.html.erb文件中的以下部分:

<%= select :fees_submission, :dates_id, @dates.map { |e| [e.full_name, e.id]},{:prompt => "#{t('select_fee_collection_date')}"},{:onChange => "#{remote_function(:url => {:action => "load_fees_voucher"},:with => "'date='+value+'&batch_id='[email protected]") }"} %> 

當選擇或更改選擇列表值時,局部會對load_fees_voucher方法進行遠程調用。但是,我無法通過部分將@batch實例變量中的信息(從我的原始方法)傳遞給遠程方法。如果我將@ batch.id更改爲最後一行中的硬編碼值(在:with下),代碼將正常運行,但不會以當前格式運行。是否有不同的過程來訪問partials中的實例變量?謝謝!

回答

0

您可以在部分中使用相同的實例變量。

試試這個,

<%= select :fees_submission, :dates_id, @dates.map { |e| [e.full_name, e.id]},{:prompt => "#{t('select_fee_collection_date')}"},{:onChange => "#{remote_function(:url => {:action => "load_fees_voucher"},:with => "'date='+value+'&batch_id='+#{@batch.id}") }"} %> 
+0

這工作!謝謝:) ...你能解釋一下這個工作方式或指向我的相關文件嗎?謝謝! – haanimasood

+0

從我的理解。在評估字符串中的值時,例如''我來自#{place}「',這裏將評估它的值。 – Nithin