为什么在rails中使用_form.html.erb

我是Ruby on Rails的新手。我使用scaffold为admin创建模型视图和控制器

现在,我的一位前辈告诉我在_form.html.erb为admin进行更改。我不知道如何实现它。与_form.html.erb相比,使用/进行更改的优点或缺点是什么?普通方法(在索引,新建,显示和编辑中进行更改)

我的_form.html.erb如下: –

   

prohibited this admin from being saved:

我的Admin表格如下: –

 id serial NOT NULL, username character varying(20) NOT NULL DEFAULT ''::character varying, email character varying(255), first_name character varying(100), middle_name character varying(100), last_name character varying(100), designation character varying(255), office_phone character varying(255), deleted integer NOT NULL DEFAULT 0, super_admin boolean NOT NULL DEFAULT false, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL, CONSTRAINT admins_pkey PRIMARY KEY (id) 

有人可以帮我实现这一点。谢谢你提前

File以“_”下划线开头,称为rails中的partials。 它鼓励DRY (不要重复自己)软件开发原则。 您可以重复使用partials,在这种情况下,_form.html.erb可以用于new.html.erb和edit.html.erbfunction。 我们可以在其他html.erb文件中渲染部分内容,也可以在控制器内调用。 render :partial => 'partial_name'render :partial => 'partial_name'没有下划线。

这意味着您只需要在一个地方进行更改,这与编码时不要重复自己(DRY)一致。

要实现它,只需将您想要的代码拖出到部分代码(用_命名)。

要将它包含在索引的html中,编辑等,您可以插入render 'partial' ,其中partial是它的名称而不用下划线。

特别是在您的示例中,您可以使用以下模式引用表单的每个项目

 <%= f.label :email %> <%= f.text_field :email %> 

阅读部分内容。 它们可以帮助您干掉代码。 在这里阅读更多

在这里,我试图在其他答案的帮助下给你一个答案,

在Rails中,公共视图代码可以放在名为partials的文件中(阅读@Sachin R's关于partials @Sachin R's答案),partials基本上可以避免代码重复并保持代码清洁/可维护。

在您的情况下,当您运行脚手架时,您的new视图和edit视图使用相同的表单。 由于这个原因,表单已转换为部分( _form )。 因此,当您在_form partial中进行更改时,更改将适用于new视图和edit视图。 (这就是为什么你的老年人要求在_form做出改变的_form ),

因此,底线是,因为部分是公共代码段,一旦您更改它们,它将适用于整个站点。