为什么在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
),
因此,底线是,因为部分是公共代码段,一旦您更改它们,它将适用于整个站点。