我有以下标记部分
%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&line=2&column=1">app/views/shared/_tag_item.html.haml
答案 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
。