6

ビュー内のリンクを使用して、インデックスページを並べ替えるコードを作成しました。これはリンクで正常に機能し、機能するコードは次のとおりです。

<p>
  <%= link_to "Sentence", :controller => params[:controller], :action => params[:action], :type => '1', :class => "btn" %>
  <%= link_to "Question", :controller => params[:controller], :action => params[:action], :type => '2', :class => "btn" %>
  <%= link_to "Mnemonic", :controller => params[:controller], :action => params[:action], :type => '3', :class => "btn"  %>
  <%= link_to "Article", :controller => params[:controller], :action => params[:action], :type => '4', :class => "btn"  %>
  <%= link_to "Recommendation", :controller => params[:controller], :action => params[:action], :type => '5', :class => "btn"  %>
</p>

ボタングループを使用したいと思います。プレーンHTMLでTwitterBootstrapを使用してこの例を作成しました。

<div class="btn-group">
  <button class="btn">Sentence</button>
  <button class="btn">Question</button>
  <button class="btn">Mnemonic</button>
  <button class="btn">Article</button>
  <button class="btn">Recommendation</button>
</div>

リンクをボタン行に変換できません。button_toを使用するだけでなく、さまざまなスタイリングオプションを試しました。理想的には、現在選択されているボタンが他のボタンとは異なる色になるように、ボタンのスタイルをさらに変更したいと思います。

編集

提案されたHTMLの出力:

<div class="btn-group">
  <a href="/dialog_catagories?class=btn&amp;type=1">Sentence</a>
  <a href="/dialog_catagories?class=btn&amp;type=2">Question</a>
  <a href="/dialog_catagories?class=btn&amp;type=3">Mnemonic</a>
  <a href="/dialog_catagories?class=btn&amp;type=4">Article</a>
  <a href="/dialog_catagories?class=btn&amp;type=5">Recommendation</a>
</div>

btn-groupは、HTMLにある場合でも、何らかの理由でボタンがページに表示されないようにしています。

編集2

Varunの回答によるHTMLコード:

<div class="btn-group">
  <a href="/dialog_catagories?html%5Bclass%5D=btn&amp;type=1">Sentence</a>
  <a href="/dialog_catagories?html%5Bclass%5D=btn&amp;type=2">Question</a>
  <a href="/dialog_catagories?html%5Bclass%5D=btn&amp;type=3">Mnemonic</a>
  <a href="/dialog_catagories?html%5Bclass%5D=btn&amp;type=4">Article</a>
  <a href="/dialog_catagories?html%5Bclass%5D=btn&amp;type=5">Recommendation</a>
</div>

解決

@Varunの提案された答えは最終的に機能しました:

<div class="btn-group">
  <%= link_to "Sentence", "?type=1", :class => "btn" %>
  <%= link_to "Question", "?type=2", :class => "btn" %>
</div>

以下が明示的に渡されていないため、機能がまだどのように機能しているかは少しわかりません。

:controller => params[:controller], :action => params[:action]

しかし、それはうまく機能しています。ありがとうございました。

4

3 に答える 3

22

これを試して:

<div class="btn-group">
  <%= link_to "Sentence", :controller => params[:controller], :action => params[:action], :type => '1', :html => { :class => "btn" } %>
  <%= link_to "Question", :controller => params[:controller], :action => params[:action], :type => '2', :html => { :class => "btn" } %>
  <%= link_to "Mnemonic", :controller => params[:controller], :action => params[:action], :type => '3', :html => { :class => "btn" } %>
  <%= link_to "Article", :controller => params[:controller], :action => params[:action], :type => '4', :html => { :class => "btn" }  %>
  <%= link_to "Recommendation", :controller => params[:controller], :action => params[:action], :type => '5', :html => { :class => "btn" } %>
</div>

編集

これを試して:

<div class="btn-group">
  <%= link_to "Sentence", "?type=1", :class => "btn" %>
  <%= link_to "Question", "?type=2", :class => "btn" %>
</div>
于 2012-11-22T13:57:29.643 に答える
4

私はまだRails2を使用していて、html => {:class =>:btn}が機能していませんでした。

私はこれをしました、そしてそれはうまくレンダリング/動作します

        <div class="btn-group">
          <%= link_to "Pool my Order", 
             {:controller => :purchasing, :action => :search_for_salesdoc,
              :sold_to_number => sold_to, doc_number => @cart.doc_number, 
              :search_option => :pool},
             :class => "btn btn-success align-center" %>
        </div>
于 2014-05-13T18:15:55.363 に答える
2

最初のコードの何が問題になっていますが、pをaに変換していますか?ブートストラップリンクは、クラス「btn」のボタンのようにスタイル設定できます

<div class="btn-group">
  <%= link_to "Sentence", :controller => params[:controller], :action => params[:action], :type => '1', :class => "btn" %>
  <%= link_to "Question", :controller => params[:controller], :action => params[:action], :type => '2', :class => "btn" %>
  <%= link_to "Mnemonic", :controller => params[:controller], :action => params[:action], :type => '3', :class => "btn"  %>
  <%= link_to "Article", :controller => params[:controller], :action => params[:action], :type => '4', :class => "btn"  %>
  <%= link_to "Recommendation", :controller => params[:controller], :action => params[:action], :type => '5', :class => "btn"  %>
</div>

これは世界にあるはずです。選択検出を行うこともそれほど難しくありません。link_toにチェックを追加するだけです。

  <%= link_to "Recommendation", :controller => params[:controller], :action => params[:action], :type => '5', :class => selected? ? "btn btn-primary" : "btn"  %>

あなたはまだ何とかして選択したものを実装する必要がありますか?ヘルパーですが、これは理解できると思います。

更新:コントローラーを使用しているため、link_toヘルパーが問題のようです。そこでアクションを実行します。link_toメソッドの正しい方法は次のとおりです。

link_to "Sentence", :controller => :foo, :action => :bar, :html => { :class => :btn }
于 2012-11-22T13:24:33.540 に答える