RoR初心者です。フォーム コントローラーで単純なメソッドを呼び出す方法の概念が、自分の視点からは理解できません。ビューから 2 つの情報を収集し、フォーム コントローラーでパラメーターに基づいて情報を取得するメソッドを呼び出し、同じビューまたは別のビューに情報を表示したいと考えています。現在、フォーム コントローラー インスタンス変数を使用して新しい情報を表示しようとしていました。ビューを更新して表示する方法がわかりませんが、それは将来のハードルです。現在、エラーが発生することなく [送信] ボタンをクリックできますが、明らかにフォーム コントローラー メソッドにヒットしていません。ビュー用の私のerbファイルは次のとおりです。
<h1>Enter Required Information</h1>
<%= form_tag (get_hotel_recommendation_path) do %>
<%= label_tag(:name, "Name:") %>
<%= text_field_tag(:name) %>
<%= label_tag(:date, "Date (yyyy-mm-dd):") %>
<%= text_field_tag(:date) %>
<%= submit_tag("Submit") %><br><br>
<%= label_tag(:recommendation, "Recommendation:") %>
<%= @recommended_hotel_name %>
<% end %>
ここに私のフォームコントローラーコードがあります:
class RecommendHotelController < ApplicationController
@recommended_hotel_name = ''
def collect_info
end
def get_hotel_recommendation
@recommended_hotel_name = Member.recommended_hotel_name( params[:name], params[:date] )
end
end
私は本当にこれを行うためのシンプルで簡単な方法が欲しいだけです-必ずしも最善ではありません. モデル コードを示すための簡単な UI が必要です。そして、私はすぐにそれを成し遂げる必要があります。
新しいフォーム コントローラ コード:
class RecommendHotelController < ApplicationController
def collect_info
end
def get_hotel_recommendation
redirect_to recommend_hotel_path
end
protected
helper_method :recommended_hotel_name
def recommended_hotel_name
unless (params[:name].nil?)
Member.recommended_hotel_name(params[:name], params[:date])
end
end
end