【问题标题】:Problems with link to eval()in RoRRoR 中链接到 eval() 的问题
【发布时间】:2010-12-10 21:43:59
【问题描述】:

我在这里做错了什么?

这在我的代码前面似乎可以正常工作:

-@images.each 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)

我看到“Uncaught TypeError: Cannot call method 'bind' of undefined” 调用 _image_path(@featured_image) 似乎有问题。 :(

【问题讨论】:

  • 这似乎是一个可能的代码注入向量。例如,如果我以某种方式设法使操作成为system('rm -rf ~')#,那么您就丢失了您的应用程序。即使不是,仅出于性能影响,更好的方法是send("#{action}_image_path", img)
  • 嗯,我不确定这如何回答我的问题.. 但谢谢。第一部分工作正常,第二个 sn-p 代码不行。

标签: ruby-on-rails link-to


【解决方案1】:

@featured_image 是否可能未定义?这似乎是这里发生的事情。

【讨论】:

  • 它不能被取消定义,因为下一行中的 =image_tag @featured_image.image.url(:display) 会导致它正确显示。
  • 恐怕我不知道发生了什么问题,然后-我会检查 params[:action] 或您的 _image_path 路由是否未定义,在这种情况下-听起来像一个你的变量是空的,但我的第一个猜测是它是@featured_image
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多