Heroku looking for erb templates but only use HAML - deployment

I'm getting a ActionView::Template::Error (undefined local variable or methodmessage_body' for #<#:0x000000041d3630>):error when I try to visitpolls/new.`
Heroku is looking for app/views/polls/new.html.erb:4:in_app_views_polls_new_html_erb__3114063437380502326_34508300'`but that file isn't even in my app. All my views are in HAML.
Any tips here would be really really helpful!

The problem might be - 'haml-rails' inside :assets or any other group in Gemfile
Move gem "haml-rails" to outside of group and it will work fine.

Related

Confusion: GitHub Project broken(?), Instructions not clear: Mercurial setup(?)

first of all, i've never done something with github, this is my first try, so please be polite and help me on the train.
I would like to use this github-project:
https://github.com/jmmcatee/cracklord which is completly in go language.
from the instructions:
If you'd like to get things build from source, it will first require you to have a working Go build environment with the GOPATH setup. Additionally, you'll probably want Git and Mercurial setup to gather the various libraries and plugins that we've used in the code.
Here are my Questions:
I've done installing git and i'm able to clone the repro, which works fine.
I've installed mercurial, but have no idea how to "setup" mercurial.
Can someone explain what mercurial setup togehter with this githubproject example means?
why i'm asking
after creating a directory git-repos
changing into this directory with cd git-repos
path is now /root/git-repos
# set GOPATH to /root/git-repos
export GOPATH=/root/git-repos
and doing go get github.com/jmmcatee/cracklord
gives this error-message:
go get github.com/jmmcatee/cracklord
can't load package: package github.com/jmmcatee/cracklord: no Go files in /root/git-repos/src/github.com/jmmcatee/cracklord
okay.
So, when i'm following the instructions i'm not able to finish. Can someone explain what i'm doing wrong?
Thank you
Paul
You don't need to set gopath anymore, it is set by default to:
~/go
You don't say which os you're using, but given your paths I assume linux. I suspect you haven't exported the environment variable correctly. You might want to try setting up a simpler package first and verifying you have your go setup right. Follow the instructions here (including verifying your setup is working, and just using the default gopath):
https://golang.org/doc/install
And try downloading and running something simpler (which doesn't require several components installed) to verify your setup first.

Can't access admin panel for a website with CMS Made Simple: Class 'cms_cache_handler' not found

I'm working on setting up and migration of old sites to a new server from Dreamhost. I have 130 sites to migrate. 1 is successful. The version is: 1.12.1
The mods in the first site upgraded well. No problems. Have a procedure to migrate. That being said, the second site, as I followed my own documentation, fails when I try to access /admin/index.php
What I get is this below:
So, this is more informational than code... so please forgive me. I don't understand why CMS MADE SIMPLE is actually not simple.
That seems like an annoying issue. Forgive any repetition but here is what I would check:
that is is 100% functioning on existing server
correct php version 5.4.3+ (5.6+ recommended) on new server
that all files & database are copied fully & without errors
config.php settings are updated for new hosting & database
that .htaccess, php.ini/.user.ini settings are appropriate
check php error log
are there any additional modules installed that may require additional php modules
try more coffee or a nights sleep - both have helped me solve all sorts of issue in the past!
consider posting on CMSMS forum - will get a wider range of CMSMS users/experience and suggestions
Good luck
Chris
Not sure what process you are using. So presuming that the site was working correctly on existing hosting and that the new hosting meets recommended requirements, especially PHP version:
Export database
Zip/Compress all website files into a single file
Copy zipped file to new hosting
Create new database & user with full access
Unzip files and make sure that they are in the right location (probably website root)
CHMOD config.php to 0644 and edit database, username & password settings for new hosting, CHMOD back to 0444
Make sure .htaccess is using correct settings for new hosting
Login to admin and clear cache
Sorry that the instructions are so basic, but the process really is Simple.
Possible issues can occur if:
the PHP version is older than 5.4.3 (5.6+ recommended).
files copied individually using ftp and some are corrupted/not copied.
Apart from that it is pretty straight forward.
Hope it helps

Dotcloud uWSGI Error

I am trying to deploy one of my applications on dotcloud. However, I keep getting:
uWSGI Error
wsgi application not found
Somebody could hint at some useful docs where this issue is discussed? My application is here:
https://github.com/kfk/datacrowd
and I do think everything is done by the tutorials.
Not sure if you looked at this page or not, but it is a good resource for deploying flask apps onto dotCloud. http://flask.pocoo.org/snippets/48/
Looking at your application, it looks like most things are setup correctly the only thing that looks a little odd is your wsgi.py file.
Have you tried to change your wsgi.py file so that it looks like this.
import sys
sys.path.append('/home/dotcloud/current')
from datacrowd.app import app as application
application.config.update(DEBUG=True)
basically I removed the if statement at the end. Try that and see if it helps at all.
If not, try commenting out the application.config.update(DEBUG=True) line and see if that helps as well.
oh yeah one more thing, it looks like you have a static file instead of a static directory, not sure if you did that on purpose or not, but usually static is a directory where you put your static media, so that is most likely suppose to be symlink to datacrowd/static
Update:
Since you had the same error, then it is most likely something wrong with your application.
ssh into your service.
$ dotcloud ssh <app.service>
And then look at your logs in /var/log/supervisor/uwsgi.log, you will most likely see a syntax error, and a stack trace, telling you where the error is.
Common issues are usually
dependencies not being installed
Using features from a new version of python. (python 2.7, 3.x, features) when the python version on dotCloud is only 2.6.x.
syntax typos (indent issues, etc)

spine.js hem server, hem build FAQ for Windows

I'm trying to mimic some basic functionality of the Todos example. After reading spinejs.com, many articles, and taking a few attempts and not getting off the ground, I do need to ask and get some help here. I wish this was more clear-cut, and I'd like to help others as well. I'm on Windows7 and I'm using spine.app to create my app, controllers, models - also using jQuery.tmpl
I'm using CS, but pretty new to it.
I'm not really sure where I need to use require (if at all) - I'm using an modules.exports = .... statement on all M, C
so index.coffee should be able to find, I assume
Maybe this is not the case - I see even though controllers/contacts used a modules.exports statement, the index still used a require.
Is index.coffee just particular about visibility ?
I see Contacts uses Contact without any require statement.
I've seen the main.App Controller be instantiated, from CS, as in Todos
or in the jQuery() script in the html, as in Contacts.
I'm assuming you should either
-build the whole thing and include application.js OR
-use the jQuery() function to create your App via javascript.
If this does compile, will it end up in public/application.js ??
I'm getting a nasty parse error,
and yes, I'm aware you consistently have to use spaces (no tabs)
That being out of the way, I'm getting hung up on the 1st require line
require('lib/setup')
Am I going to need some Cygwin stuff ? I can get it if it helps.
and I've seen the Google Groups, guillaume86's comments, contrib and CS irc channel.
I'm not sure what (date) version of hem I have
but I did try the minify: false, option and a few other things, to try to debug this.
The good news: I'm pretty stubborn and will get this to work, if I can get a little help here.
More to come, but I'm going to close at this point.
Thanks in advance for your suggestions.
I don't think this will help the OP too much, but thought I'd write this up to help anyone else who is looking to get started with these awesome tools.
Before you go further: I've rewritten this with updates at How to manage client-side JavaScript dependencies?
Here's a basic list for getting set up with a Spine, hem, coffeescript app. I only develop on Linux, so I'm not sure if some of these steps would have problems on windows, namely npm commands. Should work fine on Mac; I know other who use the same toolchain.
Install NPM: curl http://npmjs.org/install.sh | sh on a *nix system. I'll assume it's available from the command line.
npm install -g spine.app will make spine available as a global command
spine app folder will make a Spine project called app in folder, generating the right directory structure and a bunch of skeleton files to get started.
cd to folder and edit dependencies.json for the libraries you need. Add them to slug.json so that hem knows where to find them as well. You can install hem globally (npm install -g hem) or locally, as in the next step.
npm install . to download all the dependencies you just entered in, including hem.
If you take a look at the default spine config, there is a app/lib/setup.coffee where you require all the libraries you need from your dependencies. Examples:
# Spine.app had these as dependencies by default
require('json2ify')
require('es5-shimify')
require('jqueryify')
require('spine')
require('spine/lib/local')
require('spine/lib/ajax')
require('spine/lib/manager')
require('spine/lib/route')
# d3 was installed via dependencies.json
require 'd3/d3.v2'
In index.coffee, you just require lib/setup and load the main controller for your app. In addition, you need to require any other classes in those other controllers.
The default generated index.html will usually be fine for loading your app, but modify as necessary.
From folder, run node_modules/hem/bin/hem server to start a hem server, and navigate to localhost:9294 to see your app. If you installed hem globally (npm install -g hem), then hem server by itself may work, but sometimes it gets confused about the path.
Build the rest of your app using proper MVC techniques, and use stylus for CSS and eco for views.
One more thing: normally, hem server will update automatically as you update your code and save files, which makes it a cinch to debug. Running hem build will compile your app into two files, application.js, which is minified and application.css. If you run hem server after this, it will use those files and no longer update automatically. So don't hem build until you actually need a minified version of your app for deployment.
See this other thread about that: Spine.js & hem getting started
Windows is supported (there were concerns in the past, but they have been resolved). There is actually a branch of hem that being more actively developed, since the original branch is no longer being maintained by the developer. You can check out branches version0_2 or version0_3 which have been getting updates and may eventually get windows support.
HTH.

Sinatra on Passenger always fails on first attempt

I have a small Sinatra app I'm running on a shared hosting account using Passenger. However, the first time the app is accessed after a while, I get a Passenger error page saying the application could not be started. Usually because Sinatra could not be found.
I am assuming this is just a normal delay from when a new instance is spawned. However, is there a way to delay trying to load Siantra until it Passenger has fully loaded?
I seem to have solved the issue by setting the GEMS_PATH environment variable in the .htaccess file. I haven't encountered the error again. YET!
I took this up with Dreamhost support recently (not a great experience) and eventually they recommended freezing the gems into the application. This is at best a partial solution, because it seems to work for some gems and not for others.
Instead of
require 'sinatra'
I have:
require 'vendor/gems/sinatra-0.9.4/lib/sinatra'
Freezing gems is covered elsewhere, but briefly: to prepare for this, one needs to do
mkdir vendor/gems
cd vendor/gems
gem unpack sinatra
As a result of this change, I never get the startup failure screen quoting sinatra as the file it can't load. However, I still get it for some other gems which require themselves or parts of other gems. Not too clear about the details, but I'm working on the idea of hacking the installed gems to make every "require" use a path directly out of my "vendor" library.
I think you may need to add Gem.clear_paths! in there
I had a similar problem a long time ago. Updating to a newer Sinatra gem helped me - what version are you running?