Как получить модифицированный столбец из эстакады Rails для хранения информации, как остальные?

Я сгенерировал каркас для приложения To-Do List и оставил несколько столбцов для добавления позже.

Я выполнил команду, чтобы создать миграцию, чтобы добавить новый столбец с именем client и я изменил свои файлы, чтобы он показывал на проектах index а также form, но когда я ввожу что-то в поле клиента и отправляю, он не сохраняет информацию и остается пустым..

Обновление 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>

'

1 ответ

Решение

Чтобы обеспечить безопасность вашего приложения, в Rails есть функция Strong Parameters, а в документации сказано:

Он предоставляет интерфейс для защиты атрибутов от назначения конечным пользователем. Это запрещает использование параметров Action Controller в массовом назначении активной модели до тех пор, пока они не будут внесены в белый список.

Итак, в основном вам нужно добавить в белый список новый client атрибут в Projects контроллер, добавив его в список:

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

    def project_params
      params.require(:project).permit(:title, :description, :hours, :done, :client)
    end
end 
Другие вопросы по тегам