How do I display the data in belongs_to model? - ruby-on-rails

I'd like to display "code" in comments model on "_article.html.erb". How should I modify following sources?
.schema articles
CREATE TABLE "articles" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"content" varchar(255),
"user_id" integer,
"comment_id" integer,
"created_at" datetime,
"updated_at" datetime);
.schema comments
CREATE TABLE "comments" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"code" integer,
"created_at" datetime,
"updated_at" datetime);
article.rb
class Article < ActiveRecord::Base
belongs_to :user
belongs_to :comment
end
comment.rb
class Comment < ActiveRecord::Base
has_many :articles
end
users/show.html.erb
<%= render #articles %>
articles/_article.html.erb
<li>
<%= article.comment.code %>
<span class="content"><%= article.content %></span>
by <%= article.user.name %>
</li>
users_controller.rb
class UsersController < ApplicationController
def index
#users = User.paginate(page: params[:page])
end
def show
#user = User.find(params[:id])
#articles = #user.articles.paginate(page: params[:page])
end
The following error appears on my screen after adding <%= article.comment.code %> in articles/_article.html.erb.
NoMethodError in Users#show
Showing e:/....../app/views/articles/_article.html.erb where line #2 raised:
undefined method `code' for nil:NilClass
Extracted source (around line #2):
1 <li>
2 <%= article.comment.code %>
3 <span class="content"><%= article.content %></span>
4 by <%= article.user.name %>
Trace of template inclusion: app/views/users/show.html.erb
app/views/articles/_article.html.erb:2:in `_app_views_articles__article_html_erb__849237918_32363016'
app/views/users/show.html.erb:7:in `_app_views_users_show_html_erb__1073019711_34316652'
Request
Parameters:
{"id"=>"1"}
And Full Trace is as follows;
app/views/articles/_article.html.erb:2:in `_app_views_articles__article_html_erb__849237918_32363016'
actionpack (4.0.4) lib/action_view/template.rb:143:in `block in render'
activesupport (4.0.4) lib/active_support/notifications.rb:161:in `instrument'
actionpack (4.0.4) lib/action_view/template.rb:141:in `render'
actionpack (4.0.4) lib/action_view/renderer/partial_renderer.rb:399:in `block in collection_with_template'
actionpack (4.0.4) lib/action_view/renderer/partial_renderer.rb:395:in `map'
actionpack (4.0.4) lib/action_view/renderer/partial_renderer.rb:395:in `collection_with_template'
actionpack (4.0.4) lib/action_view/renderer/partial_renderer.rb:291:in `render_collection'
actionpack (4.0.4) lib/action_view/renderer/partial_renderer.rb:275:in `block in render'
actionpack (4.0.4) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.4) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (4.0.4) lib/action_view/renderer/partial_renderer.rb:274:in `render'
actionpack (4.0.4) lib/action_view/renderer/renderer.rb:47:in `render_partial'
actionpack (4.0.4) lib/action_view/helpers/rendering_helper.rb:27:in `render'
app/views/users/show.html.erb:7:in `_app_views_users_show_html_erb__1073019711_34316652'
actionpack (4.0.4) lib/action_view/template.rb:143:in `block in render'
activesupport (4.0.4) lib/active_support/notifications.rb:161:in `instrument'
actionpack (4.0.4) lib/action_view/template.rb:141:in `render'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:49:in `block (2 levels) in render_template'
actionpack (4.0.4) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.4) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:48:in `block in render_template'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:56:in `render_with_layout'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:47:in `render_template'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:17:in `render'
actionpack (4.0.4) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionpack (4.0.4) lib/action_view/renderer/renderer.rb:23:in `render'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:127:in `_render_template'
actionpack (4.0.4) lib/action_controller/metal/streaming.rb:219:in `_render_template'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:120:in `render_to_body'
actionpack (4.0.4) lib/action_controller/metal/rendering.rb:33:in `render_to_body'
actionpack (4.0.4) lib/action_controller/metal/renderers.rb:26:in `render_to_body'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:97:in `render'
actionpack (4.0.4) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
activesupport (4.0.4) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/benchmark.rb:295:in `realtime'
activesupport (4.0.4) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:41:in `block in render'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
activerecord (4.0.4) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:40:in `render'
actionpack (4.0.4) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.0.4) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.0.4) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.0.4) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (4.0.4) lib/active_support/callbacks.rb:433:in `_run__756630078__process_action__callbacks'
activesupport (4.0.4) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.4) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.0.4) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.0.4) lib/abstract_controller/base.rb:136:in `process'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:44:in `process'
actionpack (4.0.4) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.0.4) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.0.4) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:80:in `call'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:48:in `call'
actionpack (4.0.4) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.4) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.0.4) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:674:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/flash.rb:241:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/cookies.rb:486:in `call'
activerecord (4.0.4) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.0.4) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
activerecord (4.0.4) lib/active_record/migration.rb:373:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.4) lib/active_support/callbacks.rb:373:in `_run__522467988__call__callbacks'
activesupport (4.0.4) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.4) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.4) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.0.4) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.0.4) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.4) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.0.4) lib/rails/engine.rb:511:in `call'
railties (4.0.4) lib/rails/application.rb:97:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'

You can use the relation between Article and Comment like this
<%= article.comment.code %>
to get the code of comment for the associated article.
The better way would be adding a delegate
class Article < ActiveRecord::Base
belongs_to :user
belongs_to :comment
delegate :code, to: 'comment', allow_nil: true
end
By doing so,you can simply call it as
<%= article.code%>
For more info,see this API

foreign_keys
Further to Pavan's answer, you'll be best understanding how ActiveRecord Associations work:
#app/models/comment.rb
Class Comment < ActiveRecord::Base
belongs_to :article
belongs_to :user
end
#app/models/article.rb
Class Article < ActiveRecord::Base
has_many :comments
end
This basically sets up a relational database connection, which will use foreign_keys to pull associative data on ActiveRecord objects:
#comments
id | user_id | article_id | message | created_at | updated_at
#articles
id | user_id | title | message | created_at | updated_at
--
Setup
I don't know why you've got article belongs_to comment - I presume the opposite would be true?
I would definitely look at how you want your ActiveRecord structure to work - the standard has_many association is pretty standard:
I'd personally set up the association like I described above, which will allow you to do the following:
#article = Article.find params[:id]
#article.comments.each do |comment|
comment.code
end

Related

Rails/Pundit ArgumentError

In an exercise, I'm trying to create authorization such that a user needs to be either the post's owner or the general administrator, on top of being present and logged-in to update a post. I am trying to implement a pundit policy (using Devise for authentication).
The PostController Class:
class PostsController < ApplicationController
...
def edit
#post = Post.find(params[:id])
authorize #post
end
...
end
The ApplicationPolicy Class:
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
#user = user
#record = record
end
...
def update?
user.present? && (record.user == user || user.role?(:admin))
end
def edit?
update?
end
def destroy?
update?
end
...
end
* The User model* :
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
has_many :posts
def role?(base_role)
role == base_role.to_s
end
end
I got stuck with the Argument Error: wrong number of arguments (2 for 1). My understanding is that the policy method is part of the Pundit module, and it initializes and returns a new policy object with the given record and current_user as the implicit user. Can someone help me shed a light into this issue?
ERROR MESSAGE:
Showing /home/vagrant/code/bloccit/app/views/posts/show.html.erb where line #3 raised:
<h1><%= #post.title %></h1>
<% if policy(#post).edit? %> #This is the line where the error is raised.
<%= link_to "Edit", edit_post_path(#post), class: 'btn btn-success' %>
<% end %>
wrong number of arguments (2 for 1)
Full error trace :
activerecord (4.0.10) lib/active_record/attribute_methods/query.rb:35:in `attribute?'
activemodel (4.0.10) lib/active_model/attribute_methods.rb:383:in `role?'
app/policies/application_policy.rb:26:in `update?'
app/policies/application_policy.rb:30:in `edit?'
app/views/posts/show.html.erb:3:in `_app_views_posts_show_html_erb__322214668_90107450'
actionpack (4.0.10) lib/action_view/template.rb:143:in `block in render'
activesupport (4.0.10) lib/active_support/notifications.rb:161:in `instrument'
actionpack (4.0.10) lib/action_view/template.rb:141:in `render'
actionpack (4.0.10) lib/action_view/renderer/template_renderer.rb:49:in `block (2 levels) in render_template'
actionpack (4.0.10) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.0.10) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.10) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.10) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.10) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (4.0.10) lib/action_view/renderer/template_renderer.rb:48:in `block in render_template'
actionpack (4.0.10) lib/action_view/renderer/template_renderer.rb:56:in `render_with_layout'
actionpack (4.0.10) lib/action_view/renderer/template_renderer.rb:47:in `render_template'
actionpack (4.0.10) lib/action_view/renderer/template_renderer.rb:17:in `render'
actionpack (4.0.10) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionpack (4.0.10) lib/action_view/renderer/renderer.rb:23:in `render'
actionpack (4.0.10) lib/abstract_controller/rendering.rb:127:in `_render_template'
actionpack (4.0.10) lib/action_controller/metal/streaming.rb:219:in `_render_template'
actionpack (4.0.10) lib/abstract_controller/rendering.rb:120:in `render_to_body'
actionpack (4.0.10) lib/action_controller/metal/rendering.rb:33:in `render_to_body'
actionpack (4.0.10) lib/action_controller/metal/renderers.rb:26:in `render_to_body'
actionpack (4.0.10) lib/abstract_controller/rendering.rb:97:in `render'
actionpack (4.0.10) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.0.10) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
activesupport (4.0.10) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/home/vagrant/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'
activesupport (4.0.10) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.0.10) lib/action_controller/metal/instrumentation.rb:41:in `block in render'
actionpack (4.0.10) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
activerecord (4.0.10) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.0.10) lib/action_controller/metal/instrumentation.rb:40:in `render'
actionpack (4.0.10) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.0.10) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.0.10) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.0.10) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.0.10) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (4.0.10) lib/active_support/callbacks.rb:413:in `_run__423379461__process_action__callbacks'
activesupport (4.0.10) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.10) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.10) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.10) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.10) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.10) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.10) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.10) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.10) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.0.10) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.0.10) lib/abstract_controller/base.rb:136:in `process'
actionpack (4.0.10) lib/abstract_controller/rendering.rb:44:in `process'
actionpack (4.0.10) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.0.10) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.0.10) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.0.10) lib/action_dispatch/routing/route_set.rb:82:in `call'
actionpack (4.0.10) lib/action_dispatch/routing/route_set.rb:82:in `dispatch'
actionpack (4.0.10) lib/action_dispatch/routing/route_set.rb:50:in `call'
actionpack (4.0.10) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.10) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.0.10) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.10) lib/action_dispatch/routing/route_set.rb:676:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/flash.rb:241:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/cookies.rb:486:in `call'
activerecord (4.0.10) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.0.10) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
activerecord (4.0.10) lib/active_record/migration.rb:373:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.10) lib/active_support/callbacks.rb:373:in `_run__474745028__call__callbacks'
activesupport (4.0.10) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.10) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.10) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.0.10) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.0.10) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.0.10) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.0.10) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.0.10) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.10) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.10) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.0.10) lib/rails/engine.rb:511:in `call'
railties (4.0.10) lib/rails/application.rb:97:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
/home/vagrant/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/home/vagrant/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/home/vagrant/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
The first 2-3 lines of the error trace tell us the problem is in ApplicationPolicy#update? and User#role?:
activerecord (4.0.10) lib/active_record/attribute_methods/query.rb:35:in attribute?'
activemodel (4.0.10) lib/active_model/attribute_methods.rb:383:in role?'
app/policies/application_policy.rb:26:in update?'
Looking at the code in question:
class ApplicationPolicy
...
def update?
user.present? && (record.user == user || user.role?(:admin))
end
...
end
Here's a few things to try:
Check User has a role? method defined on it.
Check User#role? is being found and called. Insert logging or a raise "In User#role?" statement into the method to be certain.
Ensure db migrations have run on development and test environments by running the rake db:migrate and rake db:migrate RAILS_ENV=test tasks.
Restart the server rails s

Display title from a foreign key in views in rails

I have the following code:
# file app/models/admin/categoria.rb
class Admin::Categoria < ActiveRecord::Base
has_many :posts
end
# file app/models/admin/post.rb
class Admin::Post < ActiveRecord::Base
belongs_to :categoria, foreign_key: "categoria_id"
end
I am trying to display the title (titulo) from Categorias table like the following code:
# file app/views/admin/posts/index.html.erb
<% #posts.each do |post| %>
<tr>
<td><%= post.titulo %></td>
<td><%= post.slug %></td>
<td><%= post.created_at %></td>
<td><%= post.categoria_id %></td>
</tr>
<% end %>
It shows the number of ID. If I try:
<td><%= post.categoria.titulo %></td>
I get the error "undefined method `categoria'". Here is the stacktrace:
activemodel (4.1.0) lib/active_model/attribute_methods.rb:435:in `method_missing'
activerecord (4.1.0) lib/active_record/attribute_methods.rb:206:in `method_missing'
app/views/admin/posts/index.html.erb:20:in `block in _app_views_admin_posts_index_html_erb___3127847778944241957_70050289571840'
activerecord (4.1.0) lib/active_record/relation/delegation.rb:46:in `each'
activerecord (4.1.0) lib/active_record/relation/delegation.rb:46:in `each'
app/views/admin/posts/index.html.erb:15:in `_app_views_admin_posts_index_html_erb___3127847778944241957_70050289571840'
actionview (4.1.0) lib/action_view/template.rb:145:in `block in render'
activesupport (4.1.0) lib/active_support/notifications.rb:161:in `instrument'
actionview (4.1.0) lib/action_view/template.rb:339:in `instrument'
actionview (4.1.0) lib/action_view/template.rb:143:in `render'
actionview (4.1.0) lib/action_view/renderer/template_renderer.rb:55:in `block (2 levels) in render_template'
actionview (4.1.0) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.1.0) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.1.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.1.0) lib/active_support/notifications.rb:159:in `instrument'
actionview (4.1.0) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionview (4.1.0) lib/action_view/renderer/template_renderer.rb:54:in `block in render_template'
actionview (4.1.0) lib/action_view/renderer/template_renderer.rb:62:in `render_with_layout'
actionview (4.1.0) lib/action_view/renderer/template_renderer.rb:53:in `render_template'
actionview (4.1.0) lib/action_view/renderer/template_renderer.rb:17:in `render'
actionview (4.1.0) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionview (4.1.0) lib/action_view/renderer/renderer.rb:23:in `render'
actionview (4.1.0) lib/action_view/rendering.rb:99:in `_render_template'
actionpack (4.1.0) lib/action_controller/metal/streaming.rb:217:in `_render_template'
actionview (4.1.0) lib/action_view/rendering.rb:82:in `render_to_body'
actionpack (4.1.0) lib/action_controller/metal/rendering.rb:32:in `render_to_body'
actionpack (4.1.0) lib/action_controller/metal/renderers.rb:32:in `render_to_body'
actionpack (4.1.0) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (4.1.0) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.1.0) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
activesupport (4.1.0) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/usr/local/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'
activesupport (4.1.0) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.1.0) lib/action_controller/metal/instrumentation.rb:41:in `block in render'
actionpack (4.1.0) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
activerecord (4.1.0) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.1.0) lib/action_controller/metal/instrumentation.rb:40:in `render'
actionpack (4.1.0) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.1.0) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.1.0) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.1.0) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.1.0) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.1.0) lib/active_support/callbacks.rb:113:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:113:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
activesupport (4.1.0) lib/active_support/callbacks.rb:229:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:229:in `block in halting'
activesupport (4.1.0) lib/active_support/callbacks.rb:229:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:229:in `block in halting'
activesupport (4.1.0) lib/active_support/callbacks.rb:166:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:166:in `block in halting'
activesupport (4.1.0) lib/active_support/callbacks.rb:166:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:166:in `block in halting'
activesupport (4.1.0) lib/active_support/callbacks.rb:166:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:166:in `block in halting'
activesupport (4.1.0) lib/active_support/callbacks.rb:86:in `call'
activesupport (4.1.0) lib/active_support/callbacks.rb:86:in `run_callbacks'
actionpack (4.1.0) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.1.0) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.1.0) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.1.0) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.1.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.1.0) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.1.0) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.1.0) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.1.0) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.1.0) lib/abstract_controller/base.rb:136:in `process'
actionview (4.1.0) lib/action_view/rendering.rb:30:in `process'
actionpack (4.1.0) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.1.0) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.1.0) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.1.0) lib/action_dispatch/routing/route_set.rb:80:in `call'
actionpack (4.1.0) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
actionpack (4.1.0) lib/action_dispatch/routing/route_set.rb:48:in `call'
actionpack (4.1.0) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.1.0) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.1.0) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.1.0) lib/action_dispatch/routing/route_set.rb:676:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/flash.rb:254:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.1.0) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call'
activerecord (4.1.0) lib/active_record/migration.rb:380:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.1.0) lib/active_support/callbacks.rb:82:in `run_callbacks'
actionpack (4.1.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.0) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.0) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.0) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.0) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.1.0) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.1.0) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.1.0) lib/rails/engine.rb:514:in `call'
railties (4.1.0) lib/rails/application.rb:144:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
/usr/local/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/usr/local/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/usr/local/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
How can I display "titulo" from Categorias table?
Change your model definitions as below:
# file app/models/admin/categoria.rb
class Admin::Categoria < ActiveRecord::Base
has_many :posts, class_name: "Admin::Post"
end
# file app/models/admin/post.rb
class Admin::Post < ActiveRecord::Base
belongs_to :categoria, class_name: "Admin::Categoria", foreign_key: "categoria_id"
end
As your models are namespaced within Admin module. I have added class_name option in the associations.
You need to do categoria belongs_to :post and post has_one :categoria
Also, you don't need to declare the foreign key. Rails will automatically look for the column categoria_id in posts if you declare the relationship.

Why does Simple_Form's association method throw the "wrong number of arguments (0 for 1)" exception?

The association method from simple_form is throwing an exception on the most basic use, and I cannot figure out why. I'd appreciate any help.
I have a has_and_belongs_to_many association between the Users and Projects models:
project.rb:
class Project < ActiveRecord::Base
has_and_belongs_to_many :users
belongs_to :owner, :class_name => "User", :foreign_key => "owner_id"
...
user.rb:
class User < ActiveRecord::Base
has_and_belongs_to_many :projects
has_many :projects_owned, :class_name => "Project", :foreign_key => "owner_id"
...
edit.html.erb:
<%= simple_form_for #project do |f| %>
<%= f.input :name, input_html: { size: 61 } %>
<%= f.input :description, as: :text, input_html: { cols: 60 } %>
<%= f.association(:users) %>
<%= f.submit "Save project", class: "btn btn-large btn-primary" %>
<% end %>
All models have corresponding tables, and the association works correclty in Rspec tests and the Rails console.
When I build the form, exactly as specified in the simple_form documentation, I get the following error:
<ArgumentError: wrong number of arguments (0 for 1)>
Stack trace:
ArgumentError - wrong number of arguments (0 for 1):
simple_form (3.0.1) lib/simple_form/inputs/collection_input.rb:87:in `collection_includes_basic_objects?'
simple_form (3.0.1) lib/simple_form/inputs/collection_input.rb:70:in `detect_common_display_methods'
simple_form (3.0.1) lib/simple_form/inputs/collection_input.rb:57:in `detect_collection_methods'
simple_form (3.0.1) lib/simple_form/inputs/collection_select_input.rb:5:in `input'
simple_form (3.0.1) lib/simple_form/wrappers/many.rb:29:in `block in render'
simple_form (3.0.1) lib/simple_form/wrappers/many.rb:27:in `render'
simple_form (3.0.1) lib/simple_form/wrappers/root.rb:15:in `render'
simple_form (3.0.1) lib/simple_form/form_builder.rb:120:in `input'
simple_form (3.0.1) lib/simple_form/form_builder.rb:212:in `association'
app/views/projects/edit.html.erb:12:in `block in _app_views_projects_edit_html_erb___630637963_32694600'
actionpack (4.0.4) lib/action_view/helpers/capture_helper.rb:38:in `block in capture'
actionpack (4.0.4) lib/action_view/helpers/capture_helper.rb:200:in `with_output_buffer'
actionpack (4.0.4) lib/action_view/helpers/capture_helper.rb:38:in `capture'
actionpack (4.0.4) lib/action_view/helpers/form_helper.rb:435:in `form_for'
simple_form (3.0.1) lib/simple_form/action_view_extensions/form_helper.rb:22:in `block in simple_form_for'
simple_form (3.0.1) lib/simple_form/action_view_extensions/form_helper.rb:41:in `with_simple_form_field_error_proc'
simple_form (3.0.1) lib/simple_form/action_view_extensions/form_helper.rb:21:in `simple_form_for'
app/views/projects/edit.html.erb:9:in `_app_views_projects_edit_html_erb___630637963_32694600'
actionpack (4.0.4) lib/action_view/template.rb:143:in `block in render'
activesupport (4.0.4) lib/active_support/notifications.rb:161:in `instrument'
actionpack (4.0.4) lib/action_view/template.rb:141:in `render'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:49:in `block (2 levels) in render_template'
actionpack (4.0.4) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.4) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:48:in `block in render_template'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:56:in `render_with_layout'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:47:in `render_template'
actionpack (4.0.4) lib/action_view/renderer/template_renderer.rb:17:in `render'
actionpack (4.0.4) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionpack (4.0.4) lib/action_view/renderer/renderer.rb:23:in `render'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:127:in `_render_template'
actionpack (4.0.4) lib/action_controller/metal/streaming.rb:219:in `_render_template'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:120:in `render_to_body'
actionpack (4.0.4) lib/action_controller/metal/rendering.rb:33:in `render_to_body'
actionpack (4.0.4) lib/action_controller/metal/renderers.rb:26:in `render_to_body'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:97:in `render'
actionpack (4.0.4) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
activesupport (4.0.4) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'
activesupport (4.0.4) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:41:in `block in render'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
activerecord (4.0.4) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:40:in `render'
actionpack (4.0.4) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.0.4) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.0.4) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.0.4) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (4.0.4) lib/active_support/callbacks.rb:413:in `_run__482912548__process_action__callbacks'
activesupport (4.0.4) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.4) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.4) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.4) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.4) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.0.4) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.0.4) lib/abstract_controller/base.rb:136:in `process'
actionpack (4.0.4) lib/abstract_controller/rendering.rb:44:in `process'
actionpack (4.0.4) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.0.4) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.0.4) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:48:in `call'
actionpack (4.0.4) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.4) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.4) lib/action_dispatch/routing/route_set.rb:674:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/flash.rb:241:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/cookies.rb:486:in `call'
activerecord (4.0.4) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.0.4) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
activerecord (4.0.4) lib/active_record/migration.rb:373:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.4) lib/active_support/callbacks.rb:373:in `_run__957210712__call__callbacks'
activesupport (4.0.4) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.4) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
better_errors (1.1.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
better_errors (1.1.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
better_errors (1.1.0) lib/better_errors/middleware.rb:56:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.4) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.0.4) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.0.4) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.0.4) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.4) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.4) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.0.4) lib/rails/engine.rb:511:in `call'
railties (4.0.4) lib/rails/application.rb:97:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
The problem has something to do with the collection for the form field.
See if this works:
<%= f.association :users, collection: User.all %>
I haven't tracked down why the collection is needed yet, but that seems to be the problem.

Rails time_ago_in_words gives error undefined method `>' for nil:NilClass

This is an individual post partial that is rendered as part of a feed partial. So its a partial within a partial.
Everything works fine except for the time_ago_in_words line. The error is
ActionView::Template::Error:
undefined method `>' for nil:NilClass
It doesn't make sense because feed_post is not nil. its rendered 3 times before the error shows up. There is a created_at because the same posts are shown in a different view, so I know its in the database. Also, if I remove time_ago_in_words and just have feed_post.created_at it works fine. I'm stumped.
# shared/_feed_post.html.erb
<li>
<%= link_to gravatar(feed_post.user), feed_post.user %>
<span class="user">
<%= link_to feed_post.user.email, feed_post.user %>
</span>
<span class="post_text">
<%= feed_post.text %>
</span>
<span class="timestamp">
<%= time_ago_in_words(feed_post.created_at) %> #### Here is the trouble
</span>
</li>
Here I render the partial with collection #feed_posts
# shared/_feed.html.erb
<% if #feed_posts.any? %>
<ol class="posts">
<%= render partial: 'shared/feed_post', collection: #feed_posts %>
</ol>
<% end %>
And here is the controller action
def home
#feed_posts = current_user.feed
end
Hopefully this is an easy error for someone to help with. I just don't see it. Any help is appreciated. Thanks
EDIT
Here is the full trace
app/views/shared/_feed_post.html.erb:10:in `_app_views_shared__feed_post_html_erb___559710345292053670_70357988998940'
actionpack (4.0.0.rc2) lib/action_view/template.rb:143:in `block in render'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:161:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/template.rb:141:in `render'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:399:in `block in collection_with_template'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:395:in `map'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:395:in `collection_with_template'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:291:in `render_collection'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:275:in `block in render'
actionpack (4.0.0.rc2) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:274:in `render'
actionpack (4.0.0.rc2) lib/action_view/renderer/renderer.rb:47:in `render_partial'
actionpack (4.0.0.rc2) lib/action_view/renderer/renderer.rb:21:in `render'
actionpack (4.0.0.rc2) lib/action_view/helpers/rendering_helper.rb:24:in `render'
app/views/shared/_feed.html.erb:3:in `_app_views_shared__feed_html_erb__1326961751106757393_70357968045160'
actionpack (4.0.0.rc2) lib/action_view/template.rb:143:in `block in render'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:161:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/template.rb:141:in `render'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:306:in `render_partial'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:279:in `block in render'
actionpack (4.0.0.rc2) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/renderer/partial_renderer.rb:278:in `render'
actionpack (4.0.0.rc2) lib/action_view/renderer/renderer.rb:47:in `render_partial'
actionpack (4.0.0.rc2) lib/action_view/helpers/rendering_helper.rb:27:in `render'
app/views/pages/home.html.erb:12:in `_app_views_pages_home_html_erb__4035833185189931772_70357967633720'
actionpack (4.0.0.rc2) lib/action_view/template.rb:143:in `block in render'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:161:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/template.rb:141:in `render'
actionpack (4.0.0.rc2) lib/action_view/renderer/template_renderer.rb:49:in `block (2 levels) in render_template'
actionpack (4.0.0.rc2) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (4.0.0.rc2) lib/action_view/renderer/template_renderer.rb:48:in `block in render_template'
actionpack (4.0.0.rc2) lib/action_view/renderer/template_renderer.rb:56:in `render_with_layout'
actionpack (4.0.0.rc2) lib/action_view/renderer/template_renderer.rb:47:in `render_template'
actionpack (4.0.0.rc2) lib/action_view/renderer/template_renderer.rb:17:in `render'
actionpack (4.0.0.rc2) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionpack (4.0.0.rc2) lib/action_view/renderer/renderer.rb:23:in `render'
actionpack (4.0.0.rc2) lib/abstract_controller/rendering.rb:127:in `_render_template'
actionpack (4.0.0.rc2) lib/action_controller/metal/streaming.rb:219:in `_render_template'
actionpack (4.0.0.rc2) lib/abstract_controller/rendering.rb:120:in `render_to_body'
actionpack (4.0.0.rc2) lib/action_controller/metal/rendering.rb:33:in `render_to_body'
actionpack (4.0.0.rc2) lib/action_controller/metal/renderers.rb:26:in `render_to_body'
actionpack (4.0.0.rc2) lib/abstract_controller/rendering.rb:97:in `render'
actionpack (4.0.0.rc2) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (4.0.0.rc2) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
activesupport (4.0.0.rc2) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
/Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'
activesupport (4.0.0.rc2) lib/active_support/core_ext/benchmark.rb:12:in `ms'
actionpack (4.0.0.rc2) lib/action_controller/metal/instrumentation.rb:41:in `block in render'
actionpack (4.0.0.rc2) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
activerecord (4.0.0.rc2) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
actionpack (4.0.0.rc2) lib/action_controller/metal/instrumentation.rb:40:in `render'
actionpack (4.0.0.rc2) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (4.0.0.rc2) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (4.0.0.rc2) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.0.0.rc2) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.0.0.rc2) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (4.0.0.rc2) lib/active_support/callbacks.rb:403:in `_run__533002015063756194__process_action__callbacks'
activesupport (4.0.0.rc2) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.0.rc2) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.0.rc2) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.0.rc2) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.0.rc2) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.0.rc2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.0.rc2) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (4.0.0.rc2) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.0.0.rc2) lib/abstract_controller/base.rb:136:in `process'
actionpack (4.0.0.rc2) lib/abstract_controller/rendering.rb:44:in `process'
actionpack (4.0.0.rc2) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.0.0.rc2) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.0.0.rc2) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.0.0.rc2) lib/action_dispatch/routing/route_set.rb:80:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
actionpack (4.0.0.rc2) lib/action_dispatch/routing/route_set.rb:48:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.0.rc2) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.0.0.rc2) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/routing/route_set.rb:655:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/flash.rb:241:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/cookies.rb:486:in `call'
activerecord (4.0.0.rc2) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.0.0.rc2) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
activerecord (4.0.0.rc2) lib/active_record/migration.rb:369:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.0.rc2) lib/active_support/callbacks.rb:373:in `_run__3615549091380738184__call__callbacks'
activesupport (4.0.0.rc2) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.0.rc2) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.0.0.rc2) lib/rails/rack/logger.rb:21:in `block in call'
activesupport (4.0.0.rc2) lib/active_support/tagged_logging.rb:67:in `block in tagged'
activesupport (4.0.0.rc2) lib/active_support/tagged_logging.rb:25:in `tagged'
activesupport (4.0.0.rc2) lib/active_support/tagged_logging.rb:67:in `tagged'
railties (4.0.0.rc2) lib/rails/rack/logger.rb:21:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.0.rc2) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.0.rc2) lib/action_dispatch/middleware/static.rb:64:in `call'
railties (4.0.0.rc2) lib/rails/engine.rb:511:in `call'
railties (4.0.0.rc2) lib/rails/application.rb:97:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
/Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
Try this
<li>
<%= link_to gravatar(feed_post.user), feed_post.user %>
<span class="user">
<%= link_to feed_post.user.email, feed_post.user %>
</span>
<span class="post_text">
<%= feed_post.text %>
</span>
<span class="timestamp">
<%= time_ago_in_words(feed_post.created_at) unless feed_post.created_at.blank?%> #### Here is the trouble
</span>
</li>
I recently had the same problem, then I found out that it was caused by a new_record object on the page. I tried to combine new action and index action on the same page. In your case, I suspect that you have #feed_posts=[parent_object].feed_posts and #feed_post=[parent_object].feed_posts.build in your feed_post controller.

form_for undefined method `model_name' error

I'm having problem with form_for, have searched for the problem for the solutions given does not solve my problem.
I'm trying to do up a form to create new recipes:
**app/views/recipes/new.html.erb**
<%= form_for #recipe do |f| %>
<% if #recipe.errors.any? %>
<% end %>
<div class="field">
<%= f.label :recipename %><br />
<%= f.text_area :recipename %>
</div>
<div class="field">
<%= f.label :user_id %><br />
<%= f.number_field :user_id %>
</div>
<div class="actions">
<%= f.submit %>
</div>
**routes.rb**
Baserecipe::Application.routes.draw do
resources :users
resources :recipes
....
match '/createrecipe', to: 'recipes#new'
**recipes_controller.rb**
class RecipesController < ApplicationController
def create
#recipe = Recipe.new(params[:recipe])
end
end
I'm alway getting the error:
undefined method `model_name' for NilClass:Class
Extracted source (around line #1):
1: <%= form_for #recipe do |f| %>
2: <% if #recipe.errors.any? %>
3: <% end %>
class Recipe < ActiveRecord::Base
attr_accessible :recipename, :instruct1, :instruct2, :instruct3, :instruct4, :instruct5,
:instruct6, :instruct7, :instruct8, :instruct9, :instruct10, :instruct11, :instruct12,
:instruct13, :instruct14, :instruct15, :instruct16, :instruct17, :instruct18, :instruct19,
:instruct20, :instruct21, :instruct22, :instruct23, :instruct24, :instruct25, :instruct26,
:instruct27, :instruct28, :instruct29, :instruct30, :preptime, :cooktime
belongs_to :user
has_many :ingredients
has_many :rcomments
validates :recipename, presence: true, length: { maximum: 140 }
validates :user_id, presence: true
validates :preptime, presence: true
validates :cooktime, presence: true
default_scope order: 'recipes.created_at DESC'
end
full trace:
activemodel (3.2.7) lib/active_model/naming.rb:163:in `model_name_from_record_or_class'
activemodel (3.2.7) lib/active_model/naming.rb:158:in `param_key'
actionpack (3.2.7) lib/action_view/helpers/form_helper.rb:369:in `form_for'
app/views/recipes/new.html.erb:3:in `_app_views_recipes_new_html_erb___168565054_39061080'
actionpack (3.2.7) lib/action_view/template.rb:145:in `block in render'
activesupport (3.2.7) lib/active_support/notifications.rb:125:in `instrument'
actionpack (3.2.7) lib/action_view/template.rb:143:in `render'
actionpack (3.2.7) lib/action_view/renderer/template_renderer.rb:47:in `block (2 levels) in render_template'
actionpack (3.2.7) lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
activesupport (3.2.7) lib/active_support/notifications.rb:123:in `block in instrument'
activesupport (3.2.7) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (3.2.7) lib/active_support/notifications.rb:123:in `instrument'
actionpack (3.2.7) lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
actionpack (3.2.7) lib/action_view/renderer/template_renderer.rb:46:in `block in render_template'
actionpack (3.2.7) lib/action_view/renderer/template_renderer.rb:54:in `render_with_layout'
actionpack (3.2.7) lib/action_view/renderer/template_renderer.rb:45:in `render_template'
actionpack (3.2.7) lib/action_view/renderer/template_renderer.rb:18:in `render'
actionpack (3.2.7) lib/action_view/renderer/renderer.rb:36:in `render_template'
actionpack (3.2.7) lib/action_view/renderer/renderer.rb:17:in `render'
actionpack (3.2.7) lib/abstract_controller/rendering.rb:110:in `_render_template'
actionpack (3.2.7) lib/action_controller/metal/streaming.rb:225:in `_render_template'
actionpack (3.2.7) lib/abstract_controller/rendering.rb:103:in `render_to_body'
actionpack (3.2.7) lib/action_controller/metal/renderers.rb:28:in `render_to_body'
actionpack (3.2.7) lib/action_controller/metal/compatibility.rb:50:in `render_to_body'
actionpack (3.2.7) lib/abstract_controller/rendering.rb:88:in `render'
actionpack (3.2.7) lib/action_controller/metal/rendering.rb:16:in `render'
actionpack (3.2.7) lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render'
activesupport (3.2.7) lib/active_support/core_ext/benchmark.rb:5:in `block in ms'
c:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/benchmark.rb:295:in `realtime'
activesupport (3.2.7) lib/active_support/core_ext/benchmark.rb:5:in `ms'
actionpack (3.2.7) lib/action_controller/metal/instrumentation.rb:40:in `block in render'
actionpack (3.2.7) lib/action_controller/metal/instrumentation.rb:83:in `cleanup_view_runtime'
activerecord (3.2.7) lib/active_record/railties/controller_runtime.rb:24:in `cleanup_view_runtime'
actionpack (3.2.7) lib/action_controller/metal/instrumentation.rb:39:in `render'
actionpack (3.2.7) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
actionpack (3.2.7) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
actionpack (3.2.7) lib/abstract_controller/base.rb:167:in `process_action'
actionpack (3.2.7) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (3.2.7) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (3.2.7) lib/active_support/callbacks.rb:414:in `_run__22188539__process_action__1016913818__callbacks'
activesupport (3.2.7) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.7) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
activesupport (3.2.7) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.7) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (3.2.7) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (3.2.7) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
activesupport (3.2.7) lib/active_support/notifications.rb:123:in `block in instrument'
activesupport (3.2.7) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (3.2.7) lib/active_support/notifications.rb:123:in `instrument'
actionpack (3.2.7) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
actionpack (3.2.7) lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
activerecord (3.2.7) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (3.2.7) lib/abstract_controller/base.rb:121:in `process'
actionpack (3.2.7) lib/abstract_controller/rendering.rb:45:in `process'
actionpack (3.2.7) lib/action_controller/metal.rb:203:in `dispatch'
actionpack (3.2.7) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
actionpack (3.2.7) lib/action_controller/metal.rb:246:in `block in action'
actionpack (3.2.7) lib/action_dispatch/routing/route_set.rb:73:in `call'
actionpack (3.2.7) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
actionpack (3.2.7) lib/action_dispatch/routing/route_set.rb:36:in `call'
journey (1.0.4) lib/journey/router.rb:68:in `block in call'
journey (1.0.4) lib/journey/router.rb:56:in `each'
journey (1.0.4) lib/journey/router.rb:56:in `call'
actionpack (3.2.7) lib/action_dispatch/routing/route_set.rb:600:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.4.1) lib/rack/etag.rb:23:in `call'
rack (1.4.1) lib/rack/conditionalget.rb:25:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/head.rb:14:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/flash.rb:242:in `call'
rack (1.4.1) lib/rack/session/abstract/id.rb:205:in `context'
rack (1.4.1) lib/rack/session/abstract/id.rb:200:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/cookies.rb:338:in `call'
activerecord (3.2.7) lib/active_record/query_cache.rb:64:in `call'
activerecord (3.2.7) lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
activesupport (3.2.7) lib/active_support/callbacks.rb:405:in `_run__305680696__call__774818341__callbacks'
activesupport (3.2.7) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.7) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
activesupport (3.2.7) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.7) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/reloader.rb:65:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.7) lib/rails/rack/logger.rb:26:in `call_app'
railties (3.2.7) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.1) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.7) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.1) lib/rack/lock.rb:15:in `call'
actionpack (3.2.7) lib/action_dispatch/middleware/static.rb:62:in `call'
railties (3.2.7) lib/rails/engine.rb:479:in `call'
railties (3.2.7) lib/rails/application.rb:220:in `call'
rack (1.4.1) lib/rack/content_length.rb:14:in `call'
railties (3.2.7) lib/rails/rack/log_tailer.rb:17:in `call'
rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
c:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
c:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
c:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
try this
# in your recipes_controller.rb
def new
#recipe = Recipe.new
end
and remove
match '/createrecipe', to: 'recipes#new'
#in routes.rb
Baserecipe::Application.routes.draw do
resources :users
resources :recipes
....
see more info about route
your model file look like - recipe.rb
class Recipe < ActiveRecord::Base
...
...
end

Resources