順番に考えて作ってみると良いかと思います。
1.数値を入力するページを表示する
2.「計算」ボタンをクリックした時に呼び出される処理を考える
3.結果を表示する
データの永続化がないので、モデルは必要ないですよね。
となれば、コントローラとビューだけで行けそうです。
コントローラのアクションは、1.の所と2.の所、
必要なビューは1.の所と3.の結果表示の所
コントローラの1.のアクションは、ビューを呼び出すだけなので、中身は空で良くて、
2.のアクションの結果を元に、3.のビューを呼び出せばいいので、
1コントローラに2アクション、2ビューで行けそうです。
適当なコントローラを作って、アクションを二つ追加してあげます
Ruby
1class 適当なController < ApplicationController
2 def 最初のフォーム呼び出しアクション
3 end
4
5 def 計算をするアクション
6 # フォームの結果を受け取って、3倍にして、それをインスタンス変数に格納
7 @計算結果 = params[:ユーザーが入力した数値].to_f*3
8 end
9end
ビューもアクションから呼び出される二つのファイルを規定の所に配置すればOKです
html.erb
1# /app/views/適当な/最初のフォーム呼び出しアクション.html.erb
2<%= form_tag 適当なControllerの計算をするアクションのパス do %>
3 <%= text_field_tag "ユーザーが入力した数値" %>
4 <%= submit_tag "計算" %>
5<% end %>
6
7# /app/views/適当な/計算をするアクション.html.erb
8<%= @計算結果 %>
ここまで来れば、routesには上記の二つのパスを登録しておけばOKです
Ruby
1get "適当なコントローラの最初に呼び出すアクション", to "適当な#最初の呼び出しアクション"
2post "適当なコントローラで入力された値を計算して表示するアクション", to "適当な#計算をするアクション"
これでばっちり行けるはずです!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/08 07:15