RoR的新手。我無法理解如何在我的視圖中調用我的表單控制器上的簡單方法的概念。我想從視圖中收集2條信息,在表單控制器上調用一個方法,根據參數檢索一條信息,然後在同一個視圖或另一個視圖上顯示該條信息。現在,我試圖使用表單控制器實例變量來完成新信息的顯示 - 不確定如何刷新視圖來顯示它,但這是未來的障礙。現在,我可以單擊我的提交按鈕而不會出現任何錯誤,但顯然不符合我的表單控制器方法。 下面是我的看法ERB文件:如何從Rails中的視圖調用窗體控制器上的方法?
<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
我真的只是想一個簡單易用的方式來做到這一點 - 不一定是最好的。我只需要一個快速的用戶界面來演示我的模型代碼。我需要儘快完成。
新形式的控制器代碼:
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
日誌文件是什麼?這將顯示它是否正在觸發控制器操作。你發佈的觀點是哪一種行動? – 2013-04-07 08:22:17
當診斷出這樣的問題時,一定要注意'log/development.log',看看它會發生什麼。大多數Rails開發者都習慣在開發過程中觀看這個文件,比如'tail -f log/development.log',如果你能這樣做的話。 – tadman 2013-04-07 08:31:32
弗雷德裏克,我沒有看到日誌文件中與控制器相關的任何內容。當您詢問視圖張貼的是哪個動作時,您是指put/post/get區分嗎?如果是這樣,當我不處理顯示,更新或添加模型對象時,我對這些概念並沒有牢固的把握。我只想收集2個字符串並吐出另一個字符串。似乎應該有一個簡單的方法來做到這一點。 – Sedona 2013-04-08 04:22:40