Rails在多个视图中使用类似的表单字段

时间:2016-10-12 13:30:04

标签: ruby-on-rails forms partial-views

此问题扩展了我之前发布的问题Rails combining RESTful methods in a new controller。使用我的rails web应用程序,用户注册并创建项目。对于转换跟踪,我正在创建一个getting_started视图,该视图允许用户在单个操作中(在单个页面上)注册和创建项目。

我现在遇到问题,特别是对于projects,我会在两个视图上设置表单字段,即在_form上呈现的项目部分new和{{ 1}}次观看。其次是update视图上的用户表单和项目详细信息。我觉得我复制了很多代码,而rails只有一种我没有看到的简单方法。我还定期更改getting_started字段,并希望单点更新project project以及_form getting_started的表单。

我已经读过部分视图,部分视图可能会影响性能,而且我也不认为你可以简单地将表单字段包含在一个部分中,并以一种形式呈现它们(将丢弃一个错误询问" f"意味着我假设?)。

有任何建议如何最好地做到这一点?

1 个答案:

答案 0 :(得分:0)

我认为您在用户类中寻找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 %>