Note that there are some explanatory texts on larger screens.

plurals
  1. POError on 10.1.3 "User/Micropost associations"
    primarykey
    data
    text
    <p>I'm fairly new to Ruby on Rails and making my way through Michael Hartl's Rails Tutorial. I've hit a bug I can't seem to fix on Chapter 10 (specifically, 10.1.3 "User/Micropost associations"). The error I run into is when I execute the following rspec command:</p> <p>$ bundle exec rspec spec/models</p> <p>It raises the following error:</p> <pre><code>Failures: 1) Micropost accessible attributes should not allow access to user_id ←[31mFailure/Error:←[0m ←[31mexpect do←[0m ←[31mexpected ActiveModel::MassAssignmentSecurity::Error but nothing was raised←[0m ←[36m # ./spec/models/micropost_spec.rb:28:in `block (3 levels) in &lt;top (req uired)&gt;'←[0m Finished in 5.79 seconds ←[31m27 examples, 1 failure←[0m Failed examples: ←[31mrspec ./spec/models/micropost_spec.rb:27←[0m ←[36m# Micropost accessible at tributes should not allow access to user_id←[0m </code></pre> <p>This is the code for micropost_spec.rb:</p> <pre><code>require 'spec_helper' describe Micropost do let(:user) { FactoryGirl.create(:user) } before { @micropost = user.microposts.build(content: "Lorem ipsum") } subject { @micropost } it { should respond_to(:content) } it { should respond_to(:user_id) } it { should respond_to(:user) } its(:user) { should == user } it { should be_valid } describe "when user_id is not present" do before { @micropost.user_id = nil } it { should_not be_valid } end describe "accessible attributes" do it "should not allow access to user_id" do expect do Micropost.new(user_id: user.id) end.to raise_error(ActiveModel::MassAssignmentSecurity::Error) end end end </code></pre> <p>application.rb:</p> <pre><code>require File.expand_path('../boot', __FILE__) # Pick the frameworks you want: require "active_record/railtie" require "action_controller/railtie" require "action_mailer/railtie" require "active_resource/railtie" require "sprockets/railtie" # require "rails/test_unit/railtie" if defined?(Bundler) # If you precompile assets before deploying to production, use this line Bundler.require(*Rails.groups(:assets =&gt; %w(development test))) # If you want your assets lazily compiled in production, use this line # Bundler.require(:default, :assets, Rails.env) end module SampleApp class Application &lt; Rails::Application # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. config.active_record.whitelist_attributes = true # Custom directories with classes and modules you want to be autoloadable. # config.autoload_paths += %W(#{config.root}/extras) # Only load the plugins named here, in the order given (default is alphabetical). # :all can be used as a placeholder for all plugins not explicitly named. # config.plugins = [ :exception_notification, :ssl_requirement, :all ] # Activate observers that should always be running. # config.active_record.observers = :cacher, :garbage_collector, :forum_observer # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. # config.time_zone = 'Central Time (US &amp; Canada)' # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.default_locale = :de # Configure the default encoding used in templates for Ruby 1.9. config.encoding = "utf-8" # Configure sensitive parameters which will be filtered from the log file. config.filter_parameters += [:password] # Enable the asset pipeline config.assets.enabled = true # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' end end </code></pre> <p>micropost.rb...</p> <pre><code>class Micropost &lt; ActiveRecord::Base attr_accessible :content belongs_to :user validates :user_id, presence: true end </code></pre> <p>Thanks in advance for your help!</p> <p>Thai</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload