0

I've been trying to learn ruby(2.6.3) on rails(6.0.1) by following a project to make an Instagram clone. When I try to create a new post I get "no implicit conversion of String into Integer app/controllers/posts_controller.rb:8:in `create' ". I'm confused because I do not see a string to int so i'm wondering if it is something i'm missing with ruby. I've tried updating my gem versions and also tried adding the "strong_parameters" gem but that did not seem to fix my problem. Thank you for any insight as to what i'm doing wrong

Post_controller.rb

class PostsController < ApplicationController

def new
 @post = Post.new
end

def create
 @post = Post.new(post_params)

if @post.save
  redirect_to dashboard_path, flash: {success: "Post was created successfully!"}
else
  redirect_to new_post_path, flash: {danger: "Post failed to save!"}
 end
end

def show
end

private

def post_params
  params.require(:post).permit(:image, :image_cache)
end
end

Posts table migrate

class CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
  t.string :image
  t.boolean :active
  t.references :account
  t.timestamps
  end
end
end

Post Model

class Post < ApplicationRecord
  mount_uploader :image, ImageUploader
end

Post table schema

create_table "posts", force: :cascade do |t|
t.string "image"
t.boolean "active"
t.bigint "account_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["account_id"], name: "index_posts_on_account_id"
end

Full stack trace

carrierwave (2.0.2) lib/carrierwave/sanitized_file.rb:312:in `chmod'
carrierwave (2.0.2) lib/carrierwave/sanitized_file.rb:312:in `chmod!'
carrierwave (2.0.2) lib/carrierwave/sanitized_file.rb:220:in `copy_to'
carrierwave (2.0.2) lib/carrierwave/uploader/cache.rb:141:in `cache!'
carrierwave (2.0.2) lib/carrierwave/mounter.rb:63:in `block (2 levels) in cache'
carrierwave (2.0.2) lib/carrierwave/mounter.rb:176:in `handle_error'
carrierwave (2.0.2) lib/carrierwave/mounter.rb:47:in `block in cache'
carrierwave (2.0.2) lib/carrierwave/mounter.rb:46:in `map'
carrierwave (2.0.2) lib/carrierwave/mounter.rb:46:in `cache'
carrierwave (2.0.2) lib/carrierwave/mount.rb:146:in `image='
carrierwave (2.0.2) lib/carrierwave/mount.rb:373:in `image='
carrierwave (2.0.2) lib/carrierwave/orm/activerecord.rb:75:in `image='
activemodel (6.0.1) lib/active_model/attribute_assignment.rb:51:in `public_send'
activemodel (6.0.1) lib/active_model/attribute_assignment.rb:51:in `_assign_attribute'
activemodel (6.0.1) lib/active_model/attribute_assignment.rb:44:in `block in _assign_attributes'
activemodel (6.0.1) lib/active_model/attribute_assignment.rb:43:in `each'
activemodel (6.0.1) lib/active_model/attribute_assignment.rb:43:in `_assign_attributes'
activerecord (6.0.1) lib/active_record/attribute_assignment.rb:22:in `_assign_attributes'
activemodel (6.0.1) lib/active_model/attribute_assignment.rb:35:in `assign_attributes'
activerecord (6.0.1) lib/active_record/core.rb:326:in `initialize'
activerecord (6.0.1) lib/active_record/inheritance.rb:70:in `new'
activerecord (6.0.1) lib/active_record/inheritance.rb:70:in `new'
app/controllers/posts_controller.rb:8:in `create'
actionpack (6.0.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.0.1) lib/abstract_controller/base.rb:196:in `process_action'
actionpack (6.0.1) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.0.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.0.1) lib/active_support/callbacks.rb:135:in `run_callbacks'
actionpack (6.0.1) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.0.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.0.1) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport (6.0.1) lib/active_support/notifications.rb:180:in `block in instrument'
activesupport (6.0.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.0.1) lib/active_support/notifications.rb:180:in `instrument'
actionpack (6.0.1) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack (6.0.1) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (6.0.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.0.1) lib/abstract_controller/base.rb:136:in `process'
actionview (6.0.1) lib/action_view/rendering.rb:39:in `process'
actionpack (6.0.1) lib/action_controller/metal.rb:191:in `dispatch'
actionpack (6.0.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (6.0.1) lib/action_dispatch/routing/route_set.rb:51:in `dispatch'
actionpack (6.0.1) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.0.1) lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack (6.0.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.0.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.0.1) lib/action_dispatch/routing/route_set.rb:837:in `call'
warden (1.2.8) lib/warden/manager.rb:36:in `block in call'
warden (1.2.8) lib/warden/manager.rb:34:in `catch'
warden (1.2.8) lib/warden/manager.rb:34:in `call'
rack (2.0.7) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.0.7) lib/rack/etag.rb:25:in `call'
rack (2.0.7) lib/rack/conditional_get.rb:38:in `call'
rack (2.0.7) lib/rack/head.rb:12:in `call'
actionpack (6.0.1) lib/action_dispatch/http/content_security_policy.rb:18:in `call'
rack (2.0.7) lib/rack/session/abstract/id.rb:232:in `context'
rack (2.0.7) lib/rack/session/abstract/id.rb:226:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/cookies.rb:648:in `call'
activerecord (6.0.1) lib/active_record/migration.rb:567:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.0.1) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (6.0.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
web-console (4.0.1) lib/web_console/middleware.rb:132:in `call_app'
web-console (4.0.1) lib/web_console/middleware.rb:28:in `block in call'
web-console (4.0.1) lib/web_console/middleware.rb:17:in `catch'
web-console (4.0.1) lib/web_console/middleware.rb:17:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
railties (6.0.1) lib/rails/rack/logger.rb:38:in `call_app'
railties (6.0.1) lib/rails/rack/logger.rb:26:in `block in call'
activesupport (6.0.1) lib/active_support/tagged_logging.rb:80:in `block in tagged'
activesupport (6.0.1) lib/active_support/tagged_logging.rb:28:in `tagged'
activesupport (6.0.1) lib/active_support/tagged_logging.rb:80:in `tagged'
railties (6.0.1) lib/rails/rack/logger.rb:26:in `call'
sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/request_id.rb:27:in `call'
rack (2.0.7) lib/rack/method_override.rb:22:in `call'
rack (2.0.7) lib/rack/runtime.rb:22:in `call'
activesupport (6.0.1) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/static.rb:126:in `call'
rack (2.0.7) lib/rack/sendfile.rb:111:in `call'
actionpack (6.0.1) lib/action_dispatch/middleware/host_authorization.rb:83:in `call'
webpacker (4.2.0) lib/webpacker/dev_server_proxy.rb:23:in `perform_request'
rack-proxy (0.6.5) lib/rack/proxy.rb:57:in `call'
railties (6.0.1) lib/rails/engine.rb:526:in `call'
puma (4.3.1) lib/puma/configuration.rb:228:in `call'
puma (4.3.1) lib/puma/server.rb:681:in `handle_request'
puma (4.3.1) lib/puma/server.rb:472:in `process_client'
puma (4.3.1) lib/puma/server.rb:328:in `block in run'
puma (4.3.1) lib/puma/thread_pool.rb:134:in `block in spawn_thread' 

Carrierwave config

CarrierWave.configure do |config| config.fog_credentials = { provider: 'AWS', aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], } config.storage = :fog config.permissions = "0666" config.cache_dir = "#{Rails.root}/tmp/" config.fog_directory = ENV['FOG_DIRECTORY'] config.fog_attributes = { 'Cache-Control' => "max-age=#{365.day.to_i}" }end

8
  • Is app/controllers/posts_controller.rb:8: the topmost line in the error stacktrace? I don't see anything in @post = Post.new(post_params) that would have caused that error. Hmm... Commented Dec 10, 2019 at 3:20
  • Can you paste your schema for posts table Commented Dec 10, 2019 at 3:20
  • What's on your Post model? Commented Dec 10, 2019 at 3:49
  • More likely you are trying to assign a string to a field in your Post model that is defined as an integer in your database. Commented Dec 10, 2019 at 8:27
  • Could you post the full error trace please @taylormorse? Commented Dec 10, 2019 at 11:04

1 Answer 1

1

almost always when I see this, it is passing a string into the index of an array. Sorry to be vague, but I don't see where that would happen in your code.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.