gpt4 book ai didi

ruby-on-rails - 创建编辑表单的最佳方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 08:37:23 24 4
gpt4 key购买 nike

我正在使用 Ruby on Rails 开发一个应用程序(Ruby 2 - Rails 4 - Bootstrap 3)

我已经使用 simple_form gem 构建了表单,例如注册和注册,但是如何创建一个从数据库加载对象并允许用户编辑详细信息的表单?

假设我们在数据库中有一个产品表,我想创建一个表单来将该产品的详细信息加载到表单中,并允许用户编辑产品的描述、价格等。

我看了一圈,还是不太清楚。

谢谢。

最佳答案

首先,您需要放置一个从您的 View 到编辑操作的链接,在该操作中您将产品作为参数发送,这通常会出现在您的索引 (app/views/products/index.html.erb) 中。它应该看起来像这样:

<%= link_to 'Edit', edit_product_path(product) %>

然后您需要确保在您的产品 Controller (app/controllers/products_controller.rb) 中有编辑操作:

 def edit
end

现在您的 edit.html.erb (app/views/products/edit.html.erb) 应该看起来像这样:

<h1>Editing product</h1>

<%= render 'form' %>

<%= link_to 'Show', @product %> |
<%= link_to 'Back', product_path %>

最后,您呈现的表单应位于 app/views/_form.html.erb 中,应如下所示:

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

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

<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :price %><br>
<%= f.text_field :price %>
</div>
<div class="field">
<%= f.label :description %><br>
<%= f.text_field :descriptions %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>

提示:当您使用 rails generate Scaffold 命令生成脚手架时,它会自动为您的模型以及我上面提到的所有 View 和类创建编辑、删除、显示和新建操作。

rails generate Scaffold Product name:string description:text price:decimal

希望对您有所帮助!

关于ruby-on-rails - 创建编辑表单的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28345331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com