加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails视图Helper函数和link_to函数

发布时间:2020-12-17 03:52:07 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个辅助函数(例如在application_helper.rb中),该函数根据传入辅助函数的参数生成link_to.如果我将链接放在ERB文件中,它的格式为: %= link_to 'Some Text',{ :controller = 'a_controller',:action = 'an_action' } % 在辅助函数中,Text,Cont
我正在尝试创建一个辅助函数(例如在application_helper.rb中),该函数根据传入辅助函数的参数生成link_to.如果我将链接放在ERB文件中,它的格式为:

<%= link_to 'Some Text',{ :controller => 'a_controller',:action => 'an_action' } %>

在辅助函数中,Text,Controller和Action都被传入或计算.辅助函数中的代码是:

params = "{ :controller => '#{controller}',:action => '#{action_to_take}'}"
html   = "#{link_to some_text,params }<p />"
return html

生成的链接具有正确的文本,但参数实际上是params字符串的内容.

如何获取要评估的params字符串(因为它在ERB文件中)?

解决方法

我觉得你脑子里的事情过于复杂.除非你试图做一些非常奇怪(并且不可取)的事情,否则这会有效:

def link_helper text,controller,action
  link_to text,:controller => controller,:action => action
end

虽然,你可以看到它不值得它成为一个帮手 – 它几乎不比它的包装功能简单,而且灵活性要低得多.

link_to帮助器返回一个字符串,因此以您想要的方式使用它非常简单:

def link_helper text
  # some helper logic:
  controller = @controller || "pages"
  action     = @action     || "index"

  # create the html string:
  html = "A link to the #{controller}##{action} action:"
  html << link_to(text,:action => action)
  html # ruby does not require explicit returns
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读