Rails 跨多个视图的相似表单字段

Rails similar form fields across multiple views

这个问题扩展了我之前发布的问题 。使用我的 rails 网络应用程序,用户注册并创建了一个项目。对于转化跟踪,我正在创建一个 getting_started 视图,允许人们在单个操作(在单个页面上)中注册和创建项目。

我现在有一个问题,特别是对于 projects,我将在两个视图上放置表单字段,即在 new 上呈现的项目部分 _form,以及update 观看次数。其次是 getting_started 视图中的用户和项目详细信息表单。我觉得我在重复很多代码,而 rails 有一种我只是没有看到的更简单的方法。我也经常更改 project 字段,并希望单点更新 project _formgetting_started _form 的表单。

我读过局部视图,在局部视图中会影响性能,而且我也不认为你可以简单地在局部中包含表单字段,然后在表单中呈现它们(会抛出一个错误询问我假设 "f" 是什么意思?)。

有什么最好的建议吗?

我认为您在用户 class 中寻找 accepts_nested_attributes_for :project 并且您的表单中有类似这样的内容:

<%= form_for @user do |f| %>
  <%= f.fields_for :project do |builder| %>
   <%= render :partial => "project_form", :locals =>  { f: builder } %>
  <% end %>
<% end %>

它将允许您在非嵌套视图中使用相同的表单:

<%= form_for @project do |builder| %>
   <%= render :partial => "project_form", :locals =>  { f: builder } %>
<% end %>