Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将HTML呈现为纯文本而不是表单的Rails控制器_Html_Ruby On Rails_Forms - Fatal编程技术网

将HTML呈现为纯文本而不是表单的Rails控制器

将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 以及调用该操作

在我的网站上,我希望根据用户输入的数据类型呈现表单。当我在视图中调用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
以及调用该操作的视图:

= 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方法