如何使用Ruby将字符串转换为变量?

时间:2017-11-12 19:37:29

标签: ruby string

我正在尝试添加一个指向blog_post的链接,在这种情况下使用blog.link

例如,如果myblog.link = new_contact_path,则为“new_contact_path”。 在我看来,我正在尝试使用创建链接 <%= @blogs.each do |blog| %> <%= link_to blog.title, blog.link %> <%end %>

我尝试使用#{blog.link},但这不起作用。 我最后还尝试了别的东西。我会在答案中发布。

3 个答案:

答案 0 :(得分:4)

您无法将字符串转换为变量,原因很简单,变量不是Ruby中的对象。如果要将字符串转换为变量,可以通过调用字符串上的方法或通过调用其他对象上的方法将字符串作为参数传递来实现。无论哪种方式,变量都必须由方法返回,但方法只能返回对象,而变量不是对象。

答案 1 :(得分:0)

根据您的情况,我猜您应该使用Object#sendObject#public_send方法:

'qwe'.send('upcase') # => "QWE"

答案 2 :(得分:0)

我做的是做了一个辅助方法。

def blog_action_link(link)
    case link
    when "person"
      new_person_path
    when "place"
      places_path
    else
    new_contact_path
    end
  end

然后我在我的视图中使用了帮助器。