2013-11-15 61 views
0

在我的網站上,我希望根據用戶輸入的數據類型來呈現表單。當我在我的視圖中調用控制器方法時,它將輸出大量的HTML,其格式應該是從DOCTYPE開始的純文本格式。我正在使用之前在靜態的地方進行試用的帖子。Rails控制器將HTML呈現爲純文本而不是表單

控制器:

def feed_form(form_type) 

form_type = %w{type_1 type_2}.include?(form_type) ? form_type : 'post' 
render "_#{form_type}_form" 
end 

,並呼籲行動的看法:

= feed_form 'post' 

而且形式:

.feed-form 
%h3 News Feed 
= form_for(@post) do |f| 
    = render 'shared/error_messages', object: f.object 
    .field 
    = f.text_area :content, placeholder: "Make your new post here..." 
    = f.submit "Post", class: "post-button" 

回答

1

你不應該調用從控制器方法視圖。

您必須爲控制器方法中的視圖渲染(例如所有需要的模型)準備所有數據,並將其放入@variables

然後在您看來您使用已經準備好的@variables編寫所有的html,您可以從視圖中調用helpers方法,但不能調用控制器的方法。

嘗試將您的def feed_form(form_type)代碼放入幫助程序中。

P.S .:並閱讀有關MVC體系結構的內容。

+0

我忘了提及我在控制器中有「helper method:form_feed」,我認爲它會提供相同的功能,但是一旦我將它移到我的幫助器中,它就能正常工作。我會研究helper_method – NoobException

相關問題