Ruby on Rails Tuesday, April 2, 2013

On 2 April 2013 17:06, Jax <javier_rossetti1972@hotmail.com> wrote:
> Hi Colin,
>
> Thank you for your comment, I was actually missing a "end" tag to close off
> the class in the controller!

A missing end tag in the controller code gave you the error "undefined
method `model_name' for NilClass:Class"? That is unusual. I would
have expected to get a syntax error about the missing end when the
class was loaded.

Colin


>
> Cheers anyway
>
> J
>
>
> On Tuesday, April 2, 2013 3:34:11 PM UTC+1, Jax wrote:
>>
>> Hi All,
>>
>> just in a spot of bother with this gem, I am trying to create a new
>> location and get the above msg.
>>
>> here is my controller:
>>
>> class LocationsController < ApplicationController
>> # GET /locations
>> # GET /locations.json
>>
>> def index
>> @locations = Location.all
>> @json = Location.all.to_gmaps4rails
>> end
>> respond_to do |format|
>> format.html # index.html.erb
>> format.json { render json: @locations }
>> end
>> end
>>
>> # GET /locations/1
>> # GET /locations/1.json
>> def show
>> @location = Location.find(params[:id])
>> @json = Location.all.to_gmaps4rails
>> respond_to do |format|
>> format.html # show.html.erb
>> format.json { render json: @location }
>> end
>> end
>>
>> # GET /locations/new
>> # GET /locations/new.json
>> def new
>> @location = Location.new
>> @json = Location.all.to_gmaps4rails
>>
>> respond_to do |format|
>> format.html # new.html.erb
>> format.json { render json: @location }
>> end
>> end
>>
>> # GET /locations/1/edit
>> def edit
>> @location = Location.find(params[:id])
>> @json = Location.all.to_gmaps4rails
>> end
>>
>> # POST /locations
>> # POST /locations.json
>> def create
>> @location = Location.new(params[:location])
>> @json = Location.all.to_gmaps4rails
>> respond_to do |format|
>> if @location.save
>> format.html { redirect_to @location, notice: 'Location was
>> successfully created.' }
>> format.json { render json: @location, status: :created, location:
>> @location }
>> else
>> format.html { render action: "new" }
>> format.json { render json: @location.errors, status:
>> :unprocessable_entity }
>> end
>> end
>> end
>>
>> # PUT /locations/1
>> # PUT /locations/1.json
>> def update
>> @location = Location.find(params[:id])
>> @json = Location.all.to_gmaps4rails
>> respond_to do |format|
>> if @location.update_attributes(params[:location])
>> format.html { redirect_to @location, notice: 'Location was
>> successfully updated.' }
>> format.json { head :no_content }
>> else
>> format.html { render action: "edit" }
>> format.json { render json: @location.errors, status:
>> :unprocessable_entity }
>> end
>> end
>> end
>>
>> # DELETE /locations/1
>> # DELETE /locations/1.json
>> def destroy
>> @location = Location.find(params[:id])
>> @location.destroy
>> @json = Location.all.to_gmaps4rails
>> respond_to do |format|
>> format.html { redirect_to locations_url }
>> format.json { head :no_content }
>> end
>> end
>>
>> and the _form I use to create the new location:
>>
>> <%= form_for(@location) do |f| %>
>> <% if @location.errors.any? %>
>> <div id="error_explanation">
>> <h2><%= pluralize(@location.errors.count, "error") %> prohibited
>> this location from being saved:</h2>
>>
>> <ul>
>> <% @location.errors.full_messages.each do |msg| %>
>> <li><%= msg %></li>
>> <% end %>
>> </ul>
>> </div>
>> <% end %>
>>
>> <div class="field">
>> <%= f.label :id %><br />
>> <%= f.number_field :id %>
>> </div>
>> <div class="field">
>> <%= f.label :name %><br />
>> <%= f.text_field :name %>
>> </div>
>> <div class="field">
>> <%= f.label :coordinates %><br />
>> <%= f.text_field :coordinates %>
>> </div>
>> <div class="field">
>> <%= f.label :course_id %><br />
>> <%= f.number_field :course_id %>
>> </div>
>> <div class="field">
>> <%= f.label :college_id %><br />
>> <%= f.number_field :college_id %>
>> </div>
>> <div class="actions">
>> <%= f.submit %>
>> </div>
>> <% end %>
>>
>> This is the error msg in full:
>>
>> NoMethodError in Locations#new
>>
>> Showing C:/Postgrads0204/app/views/locations/_form.html.erb where line #1
>> raised:
>>
>> undefined method `model_name' for NilClass:Class
>>
>> Extracted source (around line #1):
>>
>> 1: <%= form_for(@location) do |f| %>
>>
>> 2: <% if @location.errors.any? %>
>>
>> 3: <div id="error_explanation">
>>
>> 4: <h2><%= pluralize(@location.errors.count, "error") %> prohibited
>> this location from being saved:</h2>
>>
>> Trace of template inclusion: app/views/locations/new.html.erb
>>
>> Rails.root: C:/Postgrads0204
>>
>> Application Trace | Framework Trace | Full Trace
>>
>> app/views/locations/_form.html.erb:1:in
>> `_app_views_locations__form_html_erb___82209480_46213008'
>>
>> app/views/locations/new.html.erb:3:in
>> `_app_views_locations_new_html_erb___810294894_46206828'
>>
>>
>> Any Ideas where am I going wrong?
>>
>> Cheers
>>
>> J
>
> --
> 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/msg/rubyonrails-talk/-/AT0h2_FxC80J.
>
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

--
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.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment