Rails 4 "Template is missing" error with jasper-rails gem - ruby-on-rails

I have installed the jasper-rails 1.0.3 and followed the instructions as per https://github.com/fortesinformatica/jasper-rails. My java installation is fine.
Here is my controller code:
class ReportsController < ApplicationController
respond_to :html, :xml, :pdf
def index
#council_report = CouncilReport.find(params[:council_report_id])
end
def proposed_works_summary
#council_report = CouncilReport.find(params[:council_report_id])
#proposed_works_summary = proposed_works_summary_data(#council_report.id)
respond_with #proposed_works_summary
end
end
My routes.rb:
...
resources :reports, only: [:index] do
member do
get 'proposed_works_summary'
end
end
...
Here is the error in the browser:
Template is missing
Missing template reports/proposed_works_summary, application/proposed_works_summary with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * "d:/Users/Michael/Documents/Aptana Workspace/cam/app/views"
Now I obviously have a proposed_works_summary.jrxml iReport file and I have set the queryString as follows:
<queryString language="XPath">
<![CDATA[/reports/proposed_works_summary]]>
</queryString>
I have examined the demo https://github.com/fortesinformatica/jasper-rails-demo in detail and can't see what I am missing. A little help please?

I had the same problem, I resolved it doing a little update to jasper-rails because it does not supported on Rails 4.2, if you like can prove it jasper-rails

Related

templates missing with mailer

I am new to using mailer and read a few tutorials but can't for the life of me work out why this this error is appearing
Missing template layouts/mailer with {:locale=>[:en], :formats=>[:text], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :haml]}. Searched in:
* "/Users/paulmcguane/RoR/barista/app/views"
* "/Users/paulmcguane/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/devise-3.5.6/app/views"
new_record_notification.text.erb
Hi,
A new record has been added: <%= #record.name %>
Thanks
model_mailer.rb
class ModelMailer < ApplicationMailer
# Subject can be set in your I18n file at config/locales/en.yml
# with the following lookup:
#
# en.model_mailer.new_record_notification.subject
#
def new_record_notification(record)
#record = record
mail(to: 'email#address') do |format|
format.text
end
end
end
Most likely you use layout 'mailer' in your ApplicationMailer class. Use existing layout or don't use layout at all.

Rails Problems, Missing Template

I'm a newbie to Rails and beginning my crud application. I've created the form perfectly fine but when I click the submit button this error appears, could someone please explain the error and how I would go about resolving this error
Missing template posts/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * "/Users/shannon/beginner/app/views"
My controller:
class PostsController < ApplicationController
def new
end
def create
render plain: params[:posts].inspect
end
May be you are using Rails version prior 4.1, render plain is added in Rails 4.1. So Rails is ignoring plain option and looking for template posts/create.
in Rails 4.1 you can do:
render plain: params[:posts].inspect
in Rails 4.0 you need to do:
render text: params[:posts].inspect

where to store a jbuilder template?

I'm attempting to use a jbuilder template.
Given the controller,
class Api::ReviewsController < ApplicationController
before_filter :authenticate_user!
respond_to :json
def create
#review_request = ReviewRequest.new(review_request_params.merge(user_id: current_user.id))
if #review_request.save
render 'review_requests/review'
else
head :forbidden
end
end
end
and I have the jbuilder template stored at app/views/review_requests/review.json.jbuilder
json.review_request do
json.(#review_request, :title,)
end
I'm getting a template note found error.
ActionView::MissingTemplate (Missing template review_requests/review with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
* "/Users/jd/Dropbox/application-code/antipattern/app/views"
* "/Users/jd/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/devise-3.4.1/app/views"
* "/Users/jd/Dropbox/application-code/antipattern"
* "/"
):
app/controllers/api/reviews_controller.rb:8:in `create'
Any thoughts on either where the correct place to store this template is or why rails isn't finding the template i'm using (if the storage location happens to be ok)?
jbuilder needs a json type web request, an html request to a rails server will cause the jbuilder template to not be rendered.

ActionView::MissingTemplate error when using modules

I'm using a versioned API design from this RailsCasts episode and it's working great, except my jbuilder templates aren't rendering.
Here's my controller code:
module Api
module V1
class LocationsController < ApplicationController
respond_to :json
def index
#locations = Location.all
end
end
end
end
And my jbuilder file is at app/views/api/v1/locations/index.json.jbuilder
I get the following error:
ActionView::MissingTemplate (Missing template api/v1/locations/index,
api/v1/api/index, application/index with {:locale=>[:en], :formats=>[:json],
:variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.
Searched in: * "/XXX/XXX/XXX/XXX/app/views"
EDIT: And here's the code in my routes.rb file:
namespace :api, defaults: { format: :json } do
namespace :v1 do
resources :locations, only: [ :index ]
end
end
Any ideas how I could debug this? Why are the files in the api folder not being found by Rails? Thanks!
I have this issue all the time. It can sometimes be a typo or error raised in the actual code within the json templates. Try commenting out all the lines in the index.json.jbuilder file, reload, work? Try uncommenting a line at a time. I haven't found a solution for better debugging this issue with jbuilder... yet.
in routes you should remove the defaults: { format: :json }

why won't rails find rabl templates?

working on an api, using the rails-api and rabl gems, basing understanding off railscasts 348 and 322
currently getting
Missing template activities/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :rabl]}. Searched in:
* "/Users/jd/Dropbox/honeybadgerconsulting/activitiesapi/app/views"
but best I can tell, my setup mirrors the screencasts, is there a detail i'm overlooking ?
controller is
class ActivitiesController < ApplicationController
include ActionController::ImplicitRender
def index
#activities = Activity.all
end
end
and path to rabl template is /app/views/activities/index.json.rabl
context of json.rabl
collection #activities
attributes :title, :vendor, :date, :start_time, :price
Your request URL has to end in ".json", rails thinks it's an HTML request.

Resources