3

神の愛のために、私はこれに何時間も頭をぶつけてきました。rails3 rc、1.9.2を使用します。

パラメータ、クラス、IDを使用してajaxリクエストを送信するlink_toを作成しようとしています。名前の周りにスパンタグを挿入できるように、ブロックが必要です。多くのグーグル検索がそうであるように、ドキュメンテーションは全く助けになりません。これが私がこれまでに得たものです:

<%= 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アプリでこのようなリンクをたくさん書く必要がないことを神に感謝します... ;-)

前もって感謝します

4

2 に答える 2

3

:url => {...}の代わりにurl_for(...)を実行する必要があり、すべて期待どおりに機能しました。

于 2010-09-10T01:31:13.253 に答える
2

ここに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 %>
于 2013-07-14T17:58:16.383 に答える