0

我的控制器中有以下方法:

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='+@batch.id") }"} %>

The partial makes a remote call to the load_fees_voucher method when a selection list value is selected or changed. 但是,我无法通过部分将@batch 实例变量(从我的原始方法)中的信息传递给远程方法。如果我将@batch.id 更改为最后一行(在 :with 下)中的硬编码值,则代码运行良好,但不是当前格式。是否有不同的过程来访问 partials 中的实例变量?谢谢!

4

1 回答 1

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}") }"} %>
于 2013-10-15T09:01:36.853 回答