1

我有這些路線:與語言動態路徑軌道

job_de_path GET /de/jobs/:id(.:format) jobs#show {:locale=>"de"} 
job_en_path GET /en/jobs/:id(.:format) jobs#show {:locale=>"en"} 

每個作業對象有"en""es"值的屬性locale

我想生成依賴於每個作業的區域屬性的動態路徑,像:

<%= link_to, "job 1", job_"#{job.locale}"_path(job) %> 

,但我得到語法錯誤。

syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' 

謝謝!

+0

這裏提到的錯誤還有... –

+0

with'job _「#{job.locale}」_ path(job)'我得到語法錯誤! '語法錯誤,意外的tSTRING_BEG,期待keyword_do或'{'或'(''謝謝 – hyperrjas

回答

2

你可以使用標準的「我需要調用的名稱的方法,但該名稱是一個字符串」招:

<%= link_to, "job 1", send("job_#{job.locale}_path", job) %> 

或更好(IMO),使用範圍設置您的路線:

scope '(:locale)' do 
    # Locale-less routes go here... 
end 

,然後你就會有一個簡單的job_path幫手需要的語言環境作爲參數:

<%= link_to 'job 1', job_path(job.locale, job) %> 
+0

'<%= link_to,「job 1」,send(「job_#{job.locale} _path」,job)%>''修復了錯誤:)非常感謝你! – hyperrjas