web-dev-qa-db-ja.com

Ruby on Rails-link_to button / css

わかりましたので、シンプルなAPIとWebインターフェースを開発しながら、RoRを独習しています。私はいくつかのガイドに従い、さまざまな結果をテストしてきました。いくつかのHTMLテンプレートのモックアップを作成し、それらをビューに分解し始めているプロセスにいます。

私のHTMLには、CSSスタイルのボタンである次のコードがあります。

 <input type="submit" name="" value="Add" id="open-contacts-dialog-btn" class="inbox-sf-add-btn tip" title="Open an dialog to add a new contact"/>  

これは、パネルにある/ book/new /にリンクしたいボタンです。ここにはlink_toが必要ですが、最終的なコードはどうでしょうか?私が試したコードは次のとおりです

<%= link_to "Add", new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %>

しかし、それは私のCSSスタイルを追加するのではなく、単に「追加」というテキストを生成するだけです。どんな助けも役に立ちます。ありがとう

37
ChrisMJ

link_toは、<a>ではないinput type="submit"タグを生成します。使用する必要があるのは、リンクへのbutton_toボタンを持つフォームを生成するinput type="submit"でなければなりません。

<%= button_to "Add", new_admin_course_path, :id => "open-contacts-dialog-btn",
      :class => "inbox-sf-add-btn tip", :method => :get %>

:method => :getに注意してください。それなしでは、button_toはpostに設定されたメソッドでフォームを生成します。

76
PeterWong

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

<%= link_to "<button>Add</button>".html_safe, new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %>
10
Robert

ただし、CSSスタイリングは追加されません
どういう意味ですか?クラスinbox-sf-add-btnaを持つリンク(tip要素)が生成されますよね?だから問題は何ですか?

厳密にボタン(inputではなくa要素)が必要な場合は、action属性で/book/new(または<%= new_admin_course_path %>)を指定できます。 htmlフォーム(form要素)。

0
Nikita Rybak