0

私はRuby on Railsに比較的慣れていません。現在、Rails 2.3.8 アプリケーションのビューの 1 つにこの作業コードがあります。

 <% form_for(@configuration) do |f| %>
 <%= f.text_field :parameter_a %>
 <%= f.text_field :parameter_b %>
 <%= button_to( "Apply", {} , { :method => "put" } ) %>
 <% end %>

予想どおり、「適用」ボタンを押すとupdateコントローラーが呼び出されます。ボタンをハイパーリンク スタイルで表示したいのですが、これを行う最も効率的な方法を探しています。

link_to他の方法があるかもしれませんが、正しい使い方がわかりませんでした。PUT 要求で更新された値が渡されませんでした。をお勧めする場合はlink_to、その方法のヒントを教えてください。これは動作しないコードです:

<%= link_to( "Apply", configuration_path( @configuration ), { :method => "put" } ) %>

どうもありがとう。

4

2 に答える 2

0

これを行う 1 つの方法は、htmlbutton要素といくつかの css を使用することです。JS を必要としないため、私はこの手法を非常に好みます。これは、タイプまたはクラスを使用して選択する入力タグでも実行できますが、ボタンの方が優れています;)

余談ですが、button_toそこでは使用しないでください。Rails のbutton_toタグはフォームの外で使用することになっています (独自のフォームを作成するため) f.submit。送信タイプの入力を生成します。または、送信ボタンを使用することもできます。

タグの使用に戻るとbutton、私はヘルパーを作成することを好みます。

def submit_button(text)
  content_tag :button, text, :type => :submit
end

次に、それを使用したら、この css を使用してボタンをリンクのように見せることができます。

button {
  background-color: transparent;
  border: none;
  color: #1f44ff;
  text-decoration: underline;
}

button:hover {
  cursor: pointer;
}

一部のブラウザーでは、ホバー状態を機能させるために JS を使用する必要がある場合がありますが、フォームの送信に JS を使用するよりも優れています。

于 2011-03-13T11:48:35.723 に答える
0

HTML でリンクを含むフォームを送信する (私が知っている) 唯一の方法は、リンクによって何らかの JavaScript がトリガーされるようにすることです。

これは疑似コードです。実際のフォーム送信を、選択した JavaScript ライブラリに置き換えます。

<% form_for(@configuration), :id=>'my_form' do |f| %>
  <%= f.text_field :parameter_a %>
  <%= f.text_field :parameter_b %>
  <%= link_to_function "Apply", "$('my_form').submit()" %>
<% end %>
于 2011-03-13T10:54:30.157 に答える