在Rails中将文本插入link_to

时间:2012-04-08 02:24:00

标签: ruby-on-rails

我有以下标记部分

%span.tag-label
  = link_to "#{tag}"  , :controller => "searches", :action => "search_tags", :search_type => search_type,
  :tag_type => tag_type, :tag =>"#{tag}"

我将标签传递给部分集合:

= render "shared/tag_item", :collection => @listing.keyword_list, :as => :tag, 
:search_type => "Listing", :tag_type => nil

出于某种原因,我收到了这个错误:

wrong number of arguments (0 for 1) 

在我的部分。

如果我只是在link_to "text"tag =>"text"上添加纯文本,那么它就可以了。 为什么"#{tag}"中的嵌入文本在这种情况下不起作用?

谢谢。 更新显示错误跟踪: `layouts / application中的endered listings / show.html.haml(148.4ms) 在232毫秒内完成500内部服务器错误

ActionView::Template::Error (wrong number of arguments (0 for 1)):
    1: %span.tag-label
    2:   = link_to "#{tag.to_s}"  , :controller => "searches", :action => "search_tags", :search_type => search_type,
    3:   :tag_type => tag_type, :tag =>"#{tag.to_s}"
  <a href="txmt://open?url=file:///Users/app/views/shared/_tag_item.html.haml&amp;line=2&amp;column=1">app/views/shared/_tag_item.html.haml

2 个答案:

答案 0 :(得分:1)

将局部变量传递给partial时,必须将render方法传递给键:locals

 render "shared/tag_item", :collection => @listing.keyword_list, :as => :tag, :locals => { :search_type => "Listing", :tag_type => nil }

虽然我不得不承认,但我希望这会给出NameError而不是ArgumentError。您的代码中是否存在search_type或tag_type方法?

答案 1 :(得分:0)

不确定这是否可以解决您的问题,但您无需插入tag变量。您只需撰写link_to tag:tag => tag

即可