web-dev-qa-db-ja.com

rails 3:リンクをボタンとして表示しますか?

フォーム以外のページには、ハイパーリンクよりもボタンとして見栄えの良いリンクがいくつかあります...

Link_toではなくbutton_toが機能すると思いましたが、buton_toは常に投稿として扱われるようです。

(非送信)リンクをボタンで簡単に置き換える簡単な方法はありますか?

33
jpwynn

必要なことは、:method => "get"ボタンの最後まで_toリンクのように扱われるようにする

Button_toウェイ

を使って users_path

<%= button_to "BUTTON: link version", users_path, :method => "get" %>

CSSの方法

または、実際にHTMLにフォームを挿入する代わりに(これはbutton_toが実際に行うことです)、よりきれいな(Webデザインの観点から)メソッドを使用して、実際にボタンのように見えるようにリンクをスタイルすることができますいくつかの利点

  • フォームが実際に存在してはならないときに、HTMLからフォームを除外する
  • エルビを清潔で正常な状態に保ち、驚くことはありません
  • 非常に柔軟で、あなたが望むように見せることができます
  • これを行う方法に関する素晴らしい記事です そして、ここにそのコードの小さな断片があります。実際には、ボーダー、パディング、背景画像をいじるだけです

    a.button {
      background: transparent url('bg_button_a.gif') no-repeat scroll top right;
      color: #444;
      display: block;
      float: left;
      font: normal 12px arial, sans-serif;
      height: 24px;
      margin-right: 6px;
      padding-right: 18px; /* sliding doors padding */
      text-decoration: none;
    }
    

    コードは上記のリンクから取得されます。どちらの方法を選択してもうまくいくはずです、お楽しみください!

    73
    Paul Kaplan

    ここで欲しいのはただの眺めだけだと思います。その場合は、リンク内のクラスオブジェクトにクラスを追加するだけです

    <%= link_to 'Add Class', new_subject_path, class: "btn btn-primary"%>

    12
    Dhruv Joshi

    Button_toの場合とlink_toの場合のフォームの動作が異なり、リンクが提供する機能が必要だったため、最近これを行う必要がありました。私が見つけた最良の解決策は、CSSをまったく使用せず、代わりに.html_safeを呼び出してRubyコードでhtmlをエスケープし、リンクをボタンとして適切に表示します。

    <%= link_to "<button>This is a button</button>".html_safe, some_path, :id => "button_id", :class => "button_class" %>
    
    10
    Robert

    リンクをボタンのように見せることだけが必要な場合。

    link_tobutton_toに変更するだけで十分です。

    1
    jasonleonhard