【问题标题】:How Do I Get an Modified Column from a Rails Scaffold to Hold Information as the others?如何从 Rails Scaffold 中获取修改后的列以像其他列一样保存信息?
【发布时间】:2015-02-05 00:56:15
【问题描述】:

我为一个待办事项列表应用程序生成了一个脚手架,并省略了一些列以供以后添加。

我运行命令创建迁移以添加一个名为 client 的新列,并更改了我的文件,以便它显示在项目 indexform 上,但是当我在客户端字段中输入内容时提交,它不保存信息并保持空白..

更新 1:

这是我的路线:

'

Rails.application.routes.draw do
  root      :to => 'projects#index'
  resources :projects
end

'

这是我的索引视图:

'

<h1 id="title">Project List</h1>



<table>
  <thead>
    <tr id="headers">
      <th>Title</th>
      <th>Client</th>
      <th>Description</th>
      <th>Hours</th>
      <th>Done</th>
      <th colspan="3"></th>
    </tr>
  </thead>


  <tbody class="col-md-2" id="listItems">
    <% @projects.each do |project| %>
      <tr id="table">
        <td><%= project.title %></td>
        <td><%= project.client %></td>
        <td><%= project.description %></td>
        <td><%= project.hours %></td>
        <td><%= project.done %></td>

        <td><%= link_to " #{image_tag('show.png')}".html_safe, project, id:'showButton' %></td>


        <td><%= link_to " #{image_tag('edit.png')}".html_safe, edit_project_path(project), id:'editButton' %></td>

        <td><%= link_to " #{image_tag('destroy.png')}".html_safe, project, id:'destroyButton', method: :delete, data: { confirm: 'Are you sure?' } %></td>

      </tr>
    <% end %>
  </tbody>
</table>

<br>

<%= link_to 'New Project', new_project_path, id:"new" %>

<footer id="footer">Copyright 2014 Kira Banks</footer>

'

【问题讨论】:

  • 这个问题可能是由于您的表单没有链接到正确的路由,或者您的 routes.rb 文件中没有包含正确的路由。您能向我们展示您的 routes.rb 并查看文件吗?

标签: ruby-on-rails ruby migrate scaffold


【解决方案1】:

为了确保您的应用程序安全,Rails 提供了一个名为 Strong Parameters 的功能,文档说:

它提供了一个接口来保护最终用户的属性 任务。这使得动作控制器参数被禁止 用于 Active Model 质量分配,直到它们被列入白名单。

因此,基本上您需要通过将Projects 控制器中的新client 属性添加到列表中来将其列入白名单:

class ProjectsController < ApplicationController
# ...
# at the end of the file
private

    def project_params
      params.require(:project).permit(:title, :description, :hours, :done, :client)
    end
end 

【讨论】:

  • @GraphicMac 很高兴它成功了!请不要忘记使用投票数下方的绿色箭头将答案标记为正确>>,以便未来的读者知道这是一个有效的解决方案!
  • 也谢谢你哈哈,我是新来的。
猜你喜欢
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 2014-11-29
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
相关资源
最近更新 更多