rails3 link_to:带属性?

时间:2010-03-24 14:01:33

标签: javascript ruby-on-rails prototype ruby-on-rails-3

我想知道:from属性是否已从rails3中移除,因为我在rails3 api中找不到任何内容 - http://rails3api.s3.amazonaws.com

任何人都有线索或暗示如何使用:with参数通过link_to发送数据

非工作示例:

= link_to "Foo", {:action => "filter", :filter => "filter1",:with => "'test='+$('search').value"}, :remote => true, :class => "trash unselected", :id => "boo"

谢谢!

3 个答案:

答案 0 :(得分:2)

今天我正在努力解决这个问题,过了一会儿我在rails.js中遇到了一些小问题。在handleRemote方法中,我改变了这个:

} else {
    method = element.attr('data-method');
    url = element.attr('href');
    data = null;
}

到此:

} else {
    method = element.attr('data-method');
    url = element.attr('href');
    data = eval(element.attr('data-with'));
}

感谢现在我可以像这样使用link_to:remote:

<%= link_to "link", some_path, :remote => true, 'data-with' => "'address=' + $j('#office_address').val();" %>

注意:这仅在您使用jquery时有效,但将其应用于原型并不困难

答案 1 :(得分:1)

这违背了非阻碍性的javascript,这就是它被删除的原因。尝试在这里查看有关主题的railscast:http://railscasts.com/episodes/205-unobtrusive-javascript

你应该尝试另一种方法。

答案 2 :(得分:1)

虽然有办法解决它。

在视图中将其用作指南:

link_to "Foo", {:action => "filter", :filter => "filter1"}, {:remote => true, :class => "trash unselected", :id => "boo", 'data-with' => "'&test='+$('search').value"}

(移动:使用第二部分并将其设为'data-with')

并将其添加到底部:

<script type="text/javascript" charset="utf-8">
  $$('a[data-remote=true]').each(function(a){
    a.onclick = function(){a.setAttribute('href', a.getAttribute('href') + eval(a.getAttribute('data-with')))};
  });
</script>

当然你需要加载原型(在rails应用程序的默认javascripts中)


对于比这个单线更好的东西:http://gist.github.com/451508

使用要点,你不需要开始:with with&amp;还是?