簡體   English   中英

如何將控制器參數傳遞給液體過濾器?

[英]How to pass controller params to Liquid filters?

液體:

asset = {{asset_url | 'screenshot.png'}}

視圖:

<img src="{{asset_url | 'screenshot.png'}}" />

幫手:

我解析如下:

Liquid::Template.parse(asset).render(asset, :filters => [TextFilter]).html_safe

text_filter.rb:

def asset_url(input)    
  AwsWrapper::S3Object.url_for("\[**asset_id**]\#{input}", [BUCKET_NAME])
end

我想知道如何將[asset_id]從視圖傳遞到text_filter,以便我形成從s3獲取圖像的網址

任何參數都可以通過寄存器傳遞給過濾器。

Liquid::Template.parse(asset).render(replace_objs, :filters => [TextFilter], 
:registers => { :your_object => object }).html_safe

text_filter.rb:

def asset_url(input)    
  asset_id = @context.registers[:your_object].asset_id
  AwsWrapper::S3Object.url_for(#{asset_id}\#{input}", [BUCKET_NAME])
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM