-
Notifications
You must be signed in to change notification settings - Fork 51
Rails4: Undefined method 'api_version' #38
Comments
What do your Gemfile/Gemfile.lock files look like? |
Thanks for the quick response Brian! Gemfile: source 'https://rubygems.org'
gem 'rails', '4.0.0.beta1'
## Database
gem 'mongoid', '~> 4.0.0', git: 'https://github.com/mongoid/mongoid.git'
## Authentication
gem 'omniauth'
gem 'omniauth-oauth2'
## Utilities
gem 'kaminari'
gem 'rest-client'
gem 'multimap'
gem 'figaro'
## Mongoid Specific
gem 'mongoid_slug'
gem 'workflow_on_mongoid'
## File Uploading & Processing
gem 'fog'
gem 'blitline'
## Client Side
gem 'jquery-rails'
gem 'turbolinks'
## API
gem 'rabl'
gem 'oj'
gem 'versionist', git: 'https://github.com/bploetz/versionist.git', branch: 'rails4'
## Howcast Internal Gems & Engines
gem 'howcast_core', path: "/Users/feliks/Projects/Playground/howcast_core"
## Groups
group :assets do
gem 'sass-rails', '~> 4.0.0.beta1'
gem 'coffee-rails', '~> 4.0.0.beta1'
gem 'haml-rails'
gem 'therubyracer', platforms: :ruby, require: 'v8'
gem 'execjs'
gem 'uglifier', '>= 1.0.3'
end
group :development, :test do
gem 'rspec-rails'
gem 'mongoid-rspec'
gem 'capybara'
gem 'fabrication'
gem 'ffaker'
gem 'launchy'
gem 'database_cleaner'
gem 'pry'
gem "better_errors"
gem "binding_of_caller"
end Gemfile.lock: GIT
remote: https://github.com/bploetz/versionist.git
revision: 9da9b47be825c86a24d8d784bf51b5a7de8250eb
branch: rails4
specs:
versionist (2.0.0.beta1)
rails (>= 3)
yard (~> 0.7)
GIT
remote: https://github.com/mongoid/mongoid.git
revision: de244e9c323d777cdf6c260e9461200ad932185b
specs:
mongoid (4.0.0)
activemodel (~> 4.0.0.beta)
moped (~> 1.4.2)
origin (~> 1.0)
tzinfo (~> 0.3.22)
PATH
remote: /Users/feliks/Projects/Playground/howcast_core
specs:
howcast_core (0.0.1)
rails (~> 4.0.0.beta1)
GEM
remote: https://rubygems.org/
specs:
actionmailer (4.0.0.beta1)
actionpack (= 4.0.0.beta1)
mail (~> 2.5.3)
actionpack (4.0.0.beta1)
activesupport (= 4.0.0.beta1)
builder (~> 3.1.0)
erubis (~> 2.7.0)
rack (~> 1.5.2)
rack-test (~> 0.6.2)
activemodel (4.0.0.beta1)
activesupport (= 4.0.0.beta1)
builder (~> 3.1.0)
activerecord (4.0.0.beta1)
activemodel (= 4.0.0.beta1)
activerecord-deprecated_finders (~> 0.0.3)
activesupport (= 4.0.0.beta1)
arel (~> 4.0.0.beta1)
activerecord-deprecated_finders (0.0.3)
activesupport (4.0.0.beta1)
i18n (~> 0.6.2)
minitest (~> 4.2)
multi_json (~> 1.3)
thread_safe (~> 0.1)
tzinfo (~> 0.3.33)
addressable (2.3.3)
arel (4.0.0.beta2)
atomic (1.1.6)
better_errors (0.8.0)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
binding_of_caller (0.7.1)
debug_inspector (>= 0.0.1)
blitline (2.1.0)
multi_json
builder (3.1.4)
capybara (2.0.3)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 1.0.0)
childprocess (0.3.9)
ffi (~> 1.0, >= 1.0.11)
coderay (1.0.9)
coffee-rails (4.0.0.beta1)
coffee-script (>= 2.2.0)
railties (>= 4.0.0.beta, < 5.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.6.2)
database_cleaner (0.9.1)
debug_inspector (0.0.2)
diff-lcs (1.2.2)
erubis (2.7.0)
excon (0.20.1)
execjs (1.4.0)
multi_json (~> 1.0)
fabrication (2.6.4)
faraday (0.8.7)
multipart-post (~> 1.1)
ffaker (1.15.0)
ffi (1.6.0)
figaro (0.6.3)
bundler (~> 1.0)
rails (>= 3, < 5)
fog (1.10.1)
builder
excon (~> 0.20)
formatador (~> 0.2.0)
mime-types
multi_json (~> 1.0)
net-scp (~> 1.1)
net-ssh (>= 2.1.3)
nokogiri (~> 1.5.0)
ruby-hmac
formatador (0.2.4)
haml (4.0.2)
tilt
haml-rails (0.4)
actionpack (>= 3.1, < 4.1)
activesupport (>= 3.1, < 4.1)
haml (>= 3.1, < 4.1)
railties (>= 3.1, < 4.1)
hashie (2.0.3)
hike (1.2.1)
httpauth (0.2.0)
i18n (0.6.4)
jquery-rails (2.2.1)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
json (1.7.7)
jwt (0.1.8)
multi_json (>= 1.5)
kaminari (0.14.1)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
launchy (2.2.0)
addressable (~> 2.3)
libv8 (3.11.8.17)
mail (2.5.3)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
method_source (0.8.1)
mime-types (1.22)
minitest (4.7.0)
mongoid-rspec (1.7.0)
mongoid (>= 3.0.1)
rake
rspec (>= 2.9)
mongoid_slug (3.0.0)
mongoid (> 3.0)
stringex (~> 1.4)
moped (1.4.5)
multi_json (1.7.2)
multimap (1.1.2)
multipart-post (1.2.0)
net-scp (1.1.0)
net-ssh (>= 2.6.5)
net-ssh (2.6.6)
nokogiri (1.5.9)
oauth2 (0.8.1)
faraday (~> 0.8)
httpauth (~> 0.1)
jwt (~> 0.1.4)
multi_json (~> 1.0)
rack (~> 1.2)
oj (2.0.10)
omniauth (1.1.4)
hashie (>= 1.2, < 3)
rack
omniauth-oauth2 (1.1.1)
oauth2 (~> 0.8.0)
omniauth (~> 1.0)
origin (1.0.11)
polyglot (0.3.3)
pry (0.9.12)
coderay (~> 1.0.5)
method_source (~> 0.8)
slop (~> 3.4)
rabl (0.8.2)
activesupport (>= 2.3.14)
rack (1.5.2)
rack-test (0.6.2)
rack (>= 1.0)
rails (4.0.0.beta1)
actionmailer (= 4.0.0.beta1)
actionpack (= 4.0.0.beta1)
activerecord (= 4.0.0.beta1)
activesupport (= 4.0.0.beta1)
bundler (>= 1.3.0, < 2.0)
railties (= 4.0.0.beta1)
sprockets-rails (~> 2.0.0.rc3)
railties (4.0.0.beta1)
actionpack (= 4.0.0.beta1)
activesupport (= 4.0.0.beta1)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.17.0, < 2.0)
rake (10.0.4)
rdoc (3.12.2)
json (~> 1.4)
ref (1.0.4)
rest-client (1.6.7)
mime-types (>= 1.16)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.13.1)
rspec-rails (2.13.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
ruby-hmac (0.4.0)
rubyzip (0.9.9)
sass (3.2.7)
sass-rails (4.0.0.beta1)
railties (>= 4.0.0.beta, < 5.0)
sass (>= 3.1.10)
sprockets-rails (~> 2.0.0.rc0)
tilt (~> 1.3)
selenium-webdriver (2.31.0)
childprocess (>= 0.2.5)
multi_json (~> 1.0)
rubyzip
websocket (~> 1.0.4)
slop (3.4.4)
sprockets (2.9.0)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.0.0.rc3)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (~> 2.8)
stringex (1.5.1)
therubyracer (0.11.4)
libv8 (~> 3.11.8.12)
ref
thor (0.18.1)
thread_safe (0.1.0)
atomic
tilt (1.3.6)
treetop (1.4.12)
polyglot
polyglot (>= 0.3.1)
turbolinks (1.1.1)
coffee-rails
tzinfo (0.3.37)
uglifier (2.0.1)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
websocket (1.0.7)
workflow (0.8.7)
workflow_on_mongoid (0.8.0.7)
mongoid
workflow (~> 0.8)
xpath (1.0.0)
nokogiri (~> 1.3)
yard (0.8.5.2)
PLATFORMS
ruby
DEPENDENCIES
better_errors
binding_of_caller
blitline
capybara
coffee-rails (~> 4.0.0.beta1)
database_cleaner
execjs
fabrication
ffaker
figaro
fog
haml-rails
howcast_core!
jquery-rails
kaminari
launchy
mongoid (~> 4.0.0)!
mongoid-rspec
mongoid_slug
multimap
oj
omniauth
omniauth-oauth2
pry
rabl
rails (= 4.0.0.beta1)
rest-client
rspec-rails
sass-rails (~> 4.0.0.beta1)
therubyracer
turbolinks
uglifier (>= 1.0.3)
versionist!
workflow_on_mongoid |
Hmmm, looks ok. Let me try to reproduce locally. Stay tuned..... |
awesome, thanks so much Brian! |
I created a fresh Rails4 app (using Ruby 2.0.0 like you are) and I'm able to reproduce this issue:
What's really concerning is that all of the versionist specs pass on Rails 4. :-/ Let me hunt this one down and push a fix up to that branch. Stay tuned..... |
Duh: Run |
So that error went away but now i'm getting this error: lib/action_dispatch/routing/mapper.rb:241:in `default_controller_and_action': 'V2/categories' is not a supported controller name. This can lead to potential routing problems. See http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use (ArgumentError) I generated a controller and route with the versionist generator so that we can eliminate typos as a cause. This is my controller: class V2::CategoriesController < V2::BaseController
def index
@categories = Category.all
respond_with @categories
end
end This is my routes file: Platform::Application.routes.draw do
api_version(:module => "V2", :header => {:name => "Accept", :value => "application/vnd.howcast.com; version=2"}, :path => {:value => "v2"}, :defaults => {:format => "json"}, :default => true) do
resources :categories
end
end Thanks so much for your help with this. |
Looks like a Rails 4 issue: rails/rails#9231 Not sure if the released Rails 4 RC contains this fix or not. Can you try pointing your app to Rails edge and see if you still see the problem? |
Yep, you're right. Doesn't look like this is still fixed even in master for Rails4 with Ruby 2.0. Thanks for all your help! |
They don't call it bleeding edge for nothing. ;-) Good luck...... |
Haha, yes that is true. I found the issue however. The versionist generator generates the route as follows: api_version(:module => "V2" ...) But when I changed the module name to a lowercase letter, it worked perfectly: api_version(:module => "v2" ...) |
OK, so clearly they changed this behavior in Rails 4 and Versionist should adapt. I'll file a separate issue for this.... |
Great! Thanks so much again Brian, I really appreciate you responding and working through this issue with me so quickly. |
I'm trying to use the Rails4 branch with Rails4.0.0-beta1 but keep getting that error.
Here is the stack trace:
The text was updated successfully, but these errors were encountered: