语法与Rails3中与块的link_to:远程=>真实,包括:类:身份证

问题描述:

为了上帝的爱,我一直在敲打我的头在这几个小时。使用rails3 rc,1.9.2。语法与Rails3中与块的link_to:远程=>真实,包括:类:身份证

我试图创建提交一个Ajax请求,使用的参数,一个class和id的link_to一,需要一个块,所以我可以插入周围的名字span标记。与许多谷歌搜索一样,文档绝对无助。下面是我到目前为止有:

<%= link_to(
     :url=>{ 
     :controller => 'themes', :action => 'remove_tag', 
     :entity_id => entity_id, :theme_id => theme_id, 
     :entity => entity, :element_id => element_id, :parent_id=>parent_id 
     }, 
     :remote => true, 
     :id => "theme-tag-#{entity}-#{entity_id}", 
     :class => "tag") do %> 
    <span class='subtract'><%= tag %></span> 
<% end %> 

生成的URL看起来是这样的:

<a href="/explore/index/theme-tag-user-3?url[controller]=themes&amp;url[action]=remove_tag&amp;url[entity_id]=3&amp;url[theme_id]=16&amp;url[entity]=user&amp;url[element_id]=filter-contributor-3&amp;url[parent_id]=filter-contributors&amp;remote=true&amp;class=tag"> 

测试描述

我不能正常显示文本“测试描述符”实际上是正确地包含在范围内;代码格式化在这里失败了一点,但是,href是错误的,没有课程或ID,并且下坡继续滚动

如果我不需要该块,我可以只添加名称而不必指定:url => {...}(如果off,则抛出一个异常块,去图),然后按照:remote => true,:id =>“whatever”,:class =>“blah”它的工作原理。我究竟做错了什么?因为我一般都是新手,所以我也想明白为什么这个语法必须差异很大?我是说真的,感谢上帝,你不必写很多像这样的链接在一个web应用程序...提前;-)

感谢

原来你要做的url_for(.. 。)而不是:url => {...},它都按预期工作。

+0

您能否在一个例子中说明如何使用url_for和link_to? – simo 2012-07-13 04:20:16

+0

@SamirSabri这里是我结束了使用作为这个问题的答案代码: '主题',:动作=> 'remove_tag',:ENTITY_ID => ENTITY_ID,:theme_id => theme_id,:entity => entity,:element_id => element_id,:parent_id => parent_id),:remote => true,:id =>“theme-tag - #{entity} - #{entity_id}”)do%> \t \t \t的 \t \t \t \t \t \t 我是新来在这一点上轨,所以我可能会以不同的格式,但主要观点仍然有效。希望有所帮助 – wkhatch 2012-07-13 09:24:40

只要把wkhatch的评论放在这里,就可以很好地格式化。

<%= link_to(
    url_for(:controller=>'themes', 
      :action=>'remove_tag', 
      :entity_id=>entity_id, 
      :theme_id=>theme_id, 
      :entity=>entity, 
      :element_id=>element_id, 
      :parent_id=>parent_id), 
    :remote=>true, 
    :id=>"theme-tag-#{entity}-#{entity_id}") do %> 
     <span class='subtract'></span><%= tag %> 
<% end %>