2010-12-10 66 views
1

我在這裏做錯了什麼?在RoR中鏈接到eval()的問題

這似乎在我的代碼罰款早期的作品:

[email protected] do |img| 
      -link_to eval(params[:action] + '_image_path(img)') do 
      =image_tag img.image.url(:thumbnail) 

但是,這是行不通的。爲什麼不?

-link_to eval(params[:action] + '_image_path(@featured_image)') do 
    =image_tag @featured_image.image.url(:display) 

我看到「遺漏的類型錯誤:無法調用未定義的方法‘綁定’」似乎與調用_image_path(@featured_image)」的問題。 :(

+0

這似乎是一個可能的代碼注入矢量。例如,如果我以某種方式設法使動作是'系統(「RM -rf〜')#',你已經失去了你的應用程序,即使沒有,爲了提高性能,一個更好的方法是'send(「#{action} _image_path」,img)' – Chuck 2010-12-10 22:50:53

+1

不知道這是如何回答我的問題..但謝謝。第一部分工作正常,代碼的第二個片段沒有。 – mtay 2010-12-11 00:15:45

回答

0

難道@featured_image是不確定的?這似乎是這裏發生了什麼。

+0

它不能被定義,因爲= image_tag @ featured_image.image.url(:顯示)在下一行是導致它正確顯示。 – mtay 2010-12-11 00:14:41

+0

恐怕我失去了什麼破的,然後 - 我會檢查是否para ms [:action]或者你的_image_path路由是未定義的,在這種情況下 - 這聽起來像你的一個變量是空的,但我的第一個猜測是它是'@ featured_image'。 – girasquid 2010-12-13 14:31:30