1

単純なルビー画面で計算をしようとしています。楽しみのために、ユーザーがメートルをフィートに変換できるフォームを作成したいと思います。もちろん、値をデータベースに保存したくありません。また、このためだけにテーブルを作成したくありません。

だから私の質問..コントローラーに関連付けられた単一のテキストフィールドを作成するにはどうすればよいですか。ボタン付き。

4

2 に答える 2

3

これは、2つの数字を追加するフォームを作成する非常に簡単な例です。

rails new math_app -O
cd math_app
rails generate controller Add form result

最後の行は、2つのアクションを持つコントローラーを生成します-

  • 「フォーム」-フォームを表示します
  • 「結果」-結果を表示します

別のコマンドプロンプトウィンドウで、「math_app」ディレクトリを開き、サーバーを起動します。

rails server

ブラウザを開いて「localhost:3000 / add / form」および「localhost:3000 / add / result」に移動すると、Railsが生成したデフォルトのページが表示されます。以下のものを編集するときに、これらのページに再度アクセスして(サーバーを再起動する必要さえありません)、それらが何を生成するかを確認できます。

'app \ views \ add \ form.html.erb'を編集して、表示するフォームを作成します。

<%= form_tag add_result_path do %>
  <%= number_field_tag :first %>
  +
  <%= number_field_tag :second %>
  <%= submit_tag "add" %>
<% end %>

'config / routers.rb'を編集して、'result'アクションが上記のフォームからPOSTリクエストを受け取るようにします。

変化 -

get "add/result"

に-

post "add/result"

'app \ controllers \ add_controller.rb'結果メソッドを編集して、フォームデータから2つの数値を取得し、それらを足し合わせます。

def result
  @first = params[:first].to_i
  @second = params[:second].to_i
  @result = @first + @second
end

'app \ views \ add \ result.html.erb'を編集して、結果を表示します。

<%= @first %> + <%= @second %> = <%= @result %>
<br/>
<%= link_to 'back', add_form_path %>

終わり!

于 2012-01-17T14:27:52.037 に答える
0

form_taghttp://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tagを確認してください

RubyonRailsはMVCイデオロギーを多用しています。ただし、すべてをデータベースに保存する必要はありません。form_tagを使用すると、モデルに関連付けずにHTMLフォームを作成できます。

于 2012-01-17T05:08:28.053 に答える