RoR的新手。从我的角度来看,我无法掌握如何在表单控制器上调用简单方法的概念。我想从视图中收集两条信息,在表单控制器上调用一个方法,该方法将根据参数检索一条信息,然后在同一视图或另一个视图上显示该信息。现在,我正在尝试使用表单控制器实例变量来完成新信息的显示——不知道如何刷新视图以显示它,但这是未来的障碍。现在,我可以单击我的提交按钮而不会出现任何错误,但它显然没有击中我的表单控制器方法。这是我的 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