добавлен столбец для переноса БД: записи не отображаются в режиме SHOW - PullRequest
0 голосов
/ 29 января 2019

Я добавил date в свою таблицу БД для скаффолда «Run», который, похоже, работал, см. Файл схемы БД:

create_table "runs", force: :cascade do |t|
    t.integer "user_id"
    t.string "Run_Type"
    t.string "Location"
    t.time "Start_Time"
    t.decimal "Pace"
    t.decimal "Miles"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.date "Run_Date"
    t.index ["user_id"], name: "index_runs_on_user_id"
  end

Затем я добавил «дату» в мою форму в NEW.html.erb file:

<%= form_with(model: run, local: true) do |form| %>
  <% if run.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(run.errors.count, "error") %> prohibited this run from being saved:</h2>

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



    <div class="form-group">
    <%= form.label :Run_Type %>
    <%= form.text_field :Run_Type, class: "form-control" %>
  </div>

   <div class="form-group">
    <%= form.label :Location %>
    <%= form.text_field :Location, class: "form-control" %>
  </div>

  <div class="form-group">
    <%= form.label :Run_Date %>
    <%= form.date_select :Run_Date, class: "form-control" %>
  </div>

   <div class="form-group">
    <%= form.label :Start_Time %>
    <%= form.time_select :Start_Time, class: "form-control" %>
  </div>

 <div class="form-group">
    <%= form.label :Pace %>
    <%= form.text_field :Pace, class: "form-control" %>
  </div>

  <div class="form-group">
    <%= form.label :Miles %>
    <%= form.text_field :Miles, class: "form-control" %>
  </div>

 <%= form.submit class: "btn btn-primary" %>
  </div>
<% end %>

Кажется, все работает, через форму появляется поле даты.Однако, когда я делаю или редактирую запись в моей БД для включения даты, она не отображается на моей странице index.html.erb, см. Ниже:

<div class="container">
<h1>Runs</h1>

  <table class="table">
  <thead>
    <tr>
      <th>User</th>
      <th>Run Type</th>
      <th>Location</th>
      <th>Start Time</th>
      <th>Pace</th>
      <th>Miles</th>
      <th>Date</th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% @runs.each do |run| %>
      <tr>
        <td><%= run.user.try(:email) %></td>
        <td><%= run.Run_Type %></td>
        <td><%= run.Location %></td>
        <td><%= run.Start_Time %></td>
        <td><%= run.Pace %></td>
        <td><%= run.Miles %></td>
        <td><%= run.Run_Date %></td>
        <td><%= link_to 'Show', run %></td>
        <% if run.user == current_user %>
        <td><%= link_to 'Edit', edit_run_path(run) %></td>
        <td><%= link_to 'Destroy', run, method: :delete, data: { confirm: 'Are you sure?' } %></td>
         <% end %>
      </tr>
    <% end %>
  </tbody>
</table>

<br>
  <% if user_signed_in? %>
      <%= link_to 'New Run', new_run_path %>
  <% end %>

</div>

В качестве визуального отображения см. Экранзахватить ниже.Хотя все эти записи были обновлены и теперь включают даты, они теперь отображаются в таблице:

enter image description here

1 Ответ

0 голосов
/ 29 января 2019

В вашем runs_controller.rb вы, вероятно, не добавили новое поле в белый список параметров.

# Never trust parameters from the scary internet, only allow the white list through.
def run_params
  params.require(:run).permit(... other fields... , :date)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...