将HTML呈现为纯文本而不是表单的Rails控制器
在我的网站上,我希望根据用户输入的数据类型呈现表单。当我在视图中调用controller方法时,它会输出成吨的HTML,其中表单应该是纯文本,从DOCTYPE到。我正在使用一个先前静态放置的post表单来尝试它 控制器:将HTML呈现为纯文本而不是表单的Rails控制器,html,ruby-on-rails,forms,Html,Ruby On Rails,Forms,在我的网站上,我希望根据用户输入的数据类型呈现表单。当我在视图中调用controller方法时,它会输出成吨的HTML,其中表单应该是纯文本,从DOCTYPE到。我正在使用一个先前静态放置的post表单来尝试它 控制器: def feed_form(form_type) form_type = %w{type_1 type_2}.include?(form_type) ? form_type : 'post' render "_#{form_type}_form" end 以及调用该操作
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"
您不应该从视图调用控制器方法 您必须在controller方法中准备视图渲染的所有数据(例如,所有必需的模型),并将其放入
@variables
然后在视图中,您使用已经准备好的@变量编写所有html,您可以从视图调用helpers方法,但不能从控制器调用
尝试将您的def feed\u表单(表单类型)
代码放入助手中
附言:并阅读一些关于MVC架构的内容。我忘了提到我的控制器中有“helper方法:form_feed”,我以为它会提供相同的功能,但一旦我将它移到我的helper中,它就工作得很好。我将研究helper\u方法