Without going into too much detail, is there something obvious that I’m
missing here? It seems to be finding the RJS file as expected but
generates this error:
ActionView::TemplateError (undefined local variable or method `page’ for
#ActionView::Base:0x7f202a04) on line #1 of
app/views/fuelings/index.js.rjs:
1: page.toggle ‘fuelings’
app/views/fuelings/index.js.rjs:1:in
_run_rjs_app47views47fuelings47index46js46rjs' app/views/fuelings/index.js.rjs:1:in
_run_rjs_app47views47fuelings47index46js46rjs’
app/controllers/fuelings_controller.rb:6:in `index’
The general outline (without posting too much code) is:
- Index action in the controller has a respond_to that invokes
index.js.rjs - The index view has an observe that triggers when the select changes
- The RJS renders a partial (not implemented yet)
Also set up a skeleton rails app just to test RJS and am getting the
same thing when I try any RJS tests.
==========================
Controller:
class FuelingsController < ApplicationController
def index
@vehicles = Vehicle.find(:all)
@vehicle = params[:vehicle_id] ?
Vehicle.find_by_id(params[:vehicle_id]) : Vehicle.find(:first)
@fuelings = @vehicle.fuelings.paginate(:all,:per_page => 15,
:page => params[:page])
respond_to do |format|
format.html
format.js
end
end
==========================
View:
<% javascript :defaults %>
<% title “Fuelings for: #{@vehicle.license}” %>
<% form_tag “”, :url => fuelings_path, :method => :get do %>
<%= select_tag
“vehicle_id”,options_for_select(@vehicles.collect{|v|[v.license,v.id]},@vehicle.id)
%>
<%= observe_field(“vehicle_id”,
:url => { :action => :index },
:method => :get,
:with => ‘vehicle_id’,
:on => “changed”) %>
<% end %>
==========================
RJS: (just to test)
page.toggle “fuelings”