Ruby on Rails Saturday, September 2, 2017

Just noticed and error in the view, should of been

<% @current_events.each do |ce| %>

Now getting a different error:

undefined method `each' for nil:NilClass

On Sunday, September 3, 2017 at 3:26:42 AM UTC+1, Ben Edwards wrote:
Ive been reading quite a few guides on this and my first attempt was not successful.  What I have done so far is writern n a migration for the view and got that working:

class UpcommingEvents < ActiveRecord::Migration[5.1]
  def up
    self.connection.execute %Q( CREATE OR REPLACE VIEW upcoming_events AS
       SELECT   v.name         "Venue",
                to_char(e.start_date,'Day') "Day",
                e.start_time,
                e.title         "Event",
                e.description
        FROM    events e,
                venues v
        WHERE   v.id = e.venue_id
        AND     e.start_date
        BETWEEN (CURRENT_DATE -INTERVAL '1 day')::date
        AND     (CURRENT_DATE + INTERVAL '7 day')::date
        order by start_date, v.name
        )
  end

  def down
    execute "DROP VIEW upcoming_events"
  end
end

Created a controller:

class CurrentEventsController < ApplicationController
  def index
  end
end

And a Model

class CurrentEvent < ApplicationRecord
end

And a View

<p id="notice"><%= notice %></p>

<h1>Current_Events</h1>

<table>
  <thead>
    <tr>
      <th>Venue</th>
      <th>Day</th>
      <th>Start Time</th>
      <th>Event</th>
      <th>Description</th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% current_event.each do |ce| %>
      <tr>
        <td><%= ce.venue %></td>
        <td><%= ce.day %></td>
        <td><%= ce.start_time %></td>
        <td><%= ce.event %></td>
        <td><%= ce.description %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

Bit when I add it as a route and browse  to the page I get

NameError in CurrentEvents#index


Showing /home/ben/eventpuddle/eventpuddle/rails/eventpuddle/app/views/current_events/index.html.erb where line #18 raised:

undefined local variable or method `current_event' for #<#<Class:0x007f64a41d4740>:0x007f648d40ba48>  Did you mean?  current_events_index_url

Extracted source (around line #18):
17 <tbody>
18 <% current_event.each do |ce| %>
19 <tr>
20 <td><%= ce.venue %></td>
21 <td><%= ce.day %></td>

Rails.root: /home/ben/eventpuddle/eventpuddle/rails/eventpuddle


I also added to config/application.rb


config.active_record.schema_format = :sql

and run 'rake db:migrate db:test:prepare'

Not sure where I am going wrong;(.









--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/46781f75-44a1-45f9-92d7-86b112076d97%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment