在rails中渲染表单部分时出错

时间:2016-01-08 10:21:33

标签: ruby-on-rails ruby-on-rails-3 rendering

我正在尝试在Rails应用程序中的单击事件上呈现页面。

在我的页面中,我呈现的部分内容如<%= render "form" %>

我的表单部分位于contacts/_form.html.erb

在我的_form.html.erb我有表单字段。

但我没有得到呈现的表格。

这是我得到的错误

  

缺少部分页面/表单{:handlers =&gt; [:erb,:rjs,:builder,:rhtml,:rxml],:formats =&gt; [:html],:locale =&gt; [:en ,:en]}在视图路径&#34; / home / ubuntu / workspace / app / views&#34;

下面是我的_form.html.erb

  <%= form_for(@contact) do |f| %>
    <% if @contact.errors.any? %>
    <div id="error_explanation">
    <h2><%= pluralize(@contact.errors.count, "error") %> prohibited this contact from being saved:</h2>

    <ul>
      <% @contact.errors.full_messages.each do |msg| %>
     <li><%= msg %></li>
      <% end %>
    </ul>
    </div>
    <% end %>

  <div class="col-md-4">
    <div class="form-group">
    <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name, :class=>"form-control", :placeholder=>"Enter Your Name" %>
    </div>
    <div class="field">
      <%= f.label :email %><br />
      <%= f.text_field :email, :class=>"form-control", :placeholder=>"Enter Your Email"%>
    </div>
    <div class="field">
     <%= f.label :phone %><br />
     <%= f.text_field :phone, :class=>"form-control", :placeholder=>"Enter Your Phone Number"%>
     </div>
     </div> 
     </div>

   <div class = "col-md-8">
  <div class="form-group">
  <div class="field">
   <%= f.label :description %><br />
   <%= f.text_area :description,  :class=>"form-control", :size=>"20x5", :placeholder=>"Enter Your Message"%>
   </div>
  </div>
 </div>

  <div class="actions">
   <%= f.submit "Submit", :class=> "button1"%>
  </div>  
 <% end %>

我做错了什么?

2 个答案:

答案 0 :(得分:0)

您必须使用erb范围内的pages_controller文件来调用您的部分内容,这就是为什么它会尝试在{{1}下找到您的_form部分目录。

您需要为views/pages提供正确的路径:

_form

修改

现在您面临<%= render "contacts/form" %> 错误。这意味着,model_name' for NilClass:Class的第一行@contact_form。您尚未初始化nil。请尝试以下方法:

@contact

答案 1 :(得分:0)

  

缺少部分页面/表单{:handlers =&gt; [:erb,:rjs,:builder,   :rhtml,:rxml],:formats =&gt; [:html],:locale =&gt; [:en,:en]}在视图路径中   “/家/ ubuntu的/工作区/应用/视图”

由于您的表单位于 联系人 文件夹下,并且您尝试在 页面 中呈现该表单,因此您需要添加部分的位置。

<%= render "contacts/form" %>