Ruby on rails 从表中删除条目,而不从数据库中删除
我构建了一个小型web应用程序,其中主视图显示一个表,管理员可以使用以下选项从数据库中删除行:Ruby on rails 从表中删除条目,而不从数据库中删除,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我构建了一个小型web应用程序,其中主视图显示一个表,管理员可以使用以下选项从数据库中删除行: *.destroy 但是,我希望保留数据库中的所有条目,但仍然希望用户能够从表中删除行,并且不确定如何执行此操作。我在考虑使用两个不同的数据库表,但想看看是否有更简单的方法 以下是我的主要观点: <h1>Student List</h1> <table class ="Tables"> <tr> <th>First Name</th
*.destroy
但是,我希望保留数据库中的所有条目,但仍然希望用户能够从表中删除行,并且不确定如何执行此操作。我在考虑使用两个不同的数据库表,但想看看是否有更简单的方法
以下是我的主要观点:
<h1>Student List</h1>
<table class ="Tables">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Date Submit</th>
<th>Floor Preference</th>
<th></th>
</tr>
<% @students.each do |student|%>
<tr>
<td><%= student.f_name %></td>
<td><%= student.l_name %></td>
<td><%= student.created_at %></td>
<td><%= student.floor_pref %></td>
<td><%= button_to 'Remove', student, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Student', new_student_path %>
学生名单
名字
姓
提交日期
楼层偏好
您可以通过在同一个表中使用布尔值创建一个额外的列来轻松实现这一点。
所以额外的列名可以是活动的。
删除行的isActive为0,其余行的isActive为1。
在获取数据时,只需在isActive=1的位置加上额外的检查,就可以通过在同一个表中创建一个带有布尔值的额外列轻松地完成这项工作。
rails g migration AddActiveToStudents active:boolean
所以额外的列名可以是活动的。
删除行的isActive为0,其余行的isActive为1。
在获取数据时,只需在isActive=1的位置进行额外检查
rails g migration AddActiveToStudents active:boolean
然后在视图中,您可以在他们单击“删除”按钮时更改值
然后在后面打勾。每个do | student |
<% if student.active %>
..........display..............
<% end %>
显示。。。。。。。。。。。。。。
然后在视图中,您可以在他们单击“删除”按钮时更改值
然后在后面打勾。每个do | student |
<% if student.active %>
..........display..............
<% end %>
显示。。。。。。。。。。。。。。
这个解决方案需要更多的人力,但对我来说很有效。我的步骤与此类似,但我将提供更多细节,因为我是编程新手,所以我将假设还有其他人也是新手:
假设:
-您使用的是单个模型、视图和控制器(例如,模型为Foo)
-您可以通过单击启动控制器操作(“销毁”)的按钮从数据库中删除记录
-如果你有关联,从数据库中销毁记录对你的应用程序来说是个问题
最后,我使用的视图是我的索引,但我也在我的显示视图中使用了一个条件语句,这样我的用户就可以打开或关闭is_admin。使用一个简单的表单,我添加了is_admin变量作为布尔值,它在我的显示表单上显示为一个复选框。选中时,该行将显示为true。未选中时,该行显示为fals这是一个劳动密集型的解决方案,但对我来说很有效。我的步骤类似,但我会提供更多细节,因为我是编程新手,所以我会假设还有其他人也是新手: 假设: -您使用的是单个模型、视图和控制器(例如,模型为Foo) -您可以通过单击启动控制器操作(“销毁”)的按钮从数据库中删除记录 -如果你有关联,从数据库中销毁记录对你的应用程序来说是个问题