0

私は次のタグを部分的に持っています

%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}"機能しないのはなぜですか?

ありがとうございました。 Showエラートレースを更新:`レイアウト/アプリケーション内のレンダリングされたlistings/ show.html.haml(148.4ms)232msで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
4

2 に答える 2

1

ローカル変数をパーシャルに渡すときは、renderメソッドにキーを渡す必要があります:locals

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

私は認めなければなりませんが、これがArgumentErrorではなくNameErrorを与えることを期待していました。search_typeまたはtag_typeメソッドがコードのどこかに存在しますか?

于 2012-04-08T06:47:03.437 に答える
0

これで問題が解決するかどうかはわかりませんが、tag変数を補間する必要はありません。あなたはただ書くことができlink_to tagます:tag => tag

于 2012-04-08T02:29:42.930 に答える