繁体   English   中英

RoR:form_for是否在页面底部打印activerecord?

[英]RoR: form_for is printing the activerecord at the bottom of my page?

我正在为我的团队创建一个非常基础的CMS,以使他们能够更改页面标题和类似性质的内容。 我有cms_pages和cms_pieces。 cms_pages指示要为cms_pieces创建的页面,因此cms_pieces属于cms_pages。

我从cms_pages索引页面创建页面,然后单击这些页面以转到其显示页面。 在显示页面上,我为cms_pieces创建了一个创建表单。

创建cms_pieces后,我将使用.each方法遍历它们,并以下面的形式填充它们: 它们的名称作为标题,并将其值应用在输入元素中,这将允许我的团队根据需要进行更新。

cms_pieces表单的这种迭代给我带来了麻烦。 请注意,这些cms_pieces更新表单位于cms_pages的视图名称约定中。

我曾尝试过像rail_with这样的不同的rails表单助手来完成它,但是它花费很少的参数来使它像我需要的那样准确。 也许我不完全了解如何使用它? 从我的研究看来,这似乎是一种全新的,可以包容各种形式的导轨形式,但是我遇到了限制。

因此,我研究了如何从cms_pages视图中将此表格定位到cms_pieces控制器,这就是我想到的。 它可以工作,但是它在页面底部打印每个cms_pieces记录,这非常丑陋,一点也不希望。

*注意,这在我的“后端”名称空间中。

<%= @cms_pieces.each do |piece|%>
    <div> Edit <%= piece.name %> </div>
    <%= form_for(backend_cms_piece_path(piece), url: backend_cms_piece_path, :method => :patch) do |form| %>
      <% if piece.errors.any? %>
      <div id="error_explanation">
        <h2><%= pluralize(piece.errors.count, "error") %> prohibited this cms_piece from being saved:</h2>

        <ul>
          <% piece.errors.full_messages.each do |message| %>
            <li><%= message %></li>
          <% end %>
        </ul>
      </div>
    <% end %>

    <div class="field">
      <%= form.label :input %>
      <%= form.text_field :input, value: piece.input  %>
    </div>

    <div class="field" style="visibility: hidden; position: absolute; bottom: 0px; right: 0px; z-index: -100;">
      <%= form.label :cms_pages_id %>
      <%= form.text_field :cms_pages_id, value: params[:id] %> 
    </div>

    <div class="field" style="visibility: hidden; position: absolute; bottom: 0px; right: 0px; z-index: -100;">
      <%= form.label :id %>
      <%= form.text_field :id, value: piece.id %>
    </div>

    <div class="actions">
      <%= form.submit %>
    </div>
  <% end %>
<% end %> 

然后将其打印在底部

[#CmsPiece id:13,名称:“横幅标题”,输入:“横幅材料?!”,cms_pages_id:12,created_at:“ 2019-08-23 02:24:24”,updated_at:“ 2019-08-23 03:00:13“,#Cms项目ID:14,名称:“ banner sub text”,输入:“ Sub Texting up here”,cms_pages_id:12,created_at:“ 2019-08-23 03:05:17”, Updated_at:“ 2019-08-23 03:05:17”]

有谁知道我的表单出了什么问题吗? 甚至可以指导我找到更优雅的表单助手? 我觉得自己在形式上的论点是多余的,但这是我发现完成我所需要的唯一途径。

我这样设置表单的原因是,我可以将page_id和件ID传递给件控制器,以正确填写件数据。 我意识到将片断传递给form参数应该使update方法保持直接,但并没有传递更新,因此我通过仅将它与form字段一起提交来解决它。

在代码的第一行中,您已使用<%= > 因此它将循环打印每个记录,请使用<% >而不是<%= >

从迭代语句中删除=将解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM