On 2 April 2013 17:06, Jax <javier_rossetti1...@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+unsubscr...@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+unsubscr...@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.