aujourd'hui, j'ai essayé de créer un nouveau modèle comme d'habitude j'ai créé mon premier contrôleur:Rails 4.2.1: ne peut pas créer enregistrement
rails g controller Newsletters
Je crée mon modèle:
rails g model Newsletter
Je mis à jour mon migration:
class CreateNewsletters < ActiveRecord::Migration
def change
create_table :newsletters do |t|
t.string :subject
t.text :message
t.string :recipient
t.boolean :send, default: false
t.timestamps null: false
end
end
end
Enfin j'ai couru ma migration:
rake db:migrate
configurer mon contrôleur:
class NewslettersController < ApplicationController
def index
@newsletters = Newsletter.all
end
def show
@newsletter = Newsletter.find_by(id: params[:id])
end
def new
@newletter = Newsletter.new
end
def create
@newletter = Newsletter.new(newsletter_params)
if @newsletter.save
flash[:success] = "Newsletter saved"
redirect_to newletter_path
else
render 'new'
end
end
def edit
end
def update
end
def destroy
newsletter = Newsletter.find_by(id: params[:id]).destroy
flash[:success] = "Successfully destroyed"
end
private
def newsletter_params
params.require(:newsletter).permit(:subject, :message, :recipient, :send)
end
end
est le problème maintenant ici. Lorsque je tente de créer un enregistrement dans la console que je reçois cette erreur:
irb(main):001:0> newsletter = Newsletter.create(subject: "test", message: "test test", recipient: "all")
ArgumentError: wrong number of arguments (given 2, expected 0)
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods.rb:48:in `__temp__3756e646'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods.rb:379:in `clone_attribute_value'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods/dirty.rb:122:in `old_attribute_value'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods/dirty.rb:94:in `write_attribute'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_methods.rb:50:in `__temp__375726a6563647'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_assignment.rb:54:in `public_send'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_assignment.rb:35:in `each'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/attribute_assignment.rb:35:in `assign_attributes'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/core.rb:559:in `init_attributes'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/core.rb:281:in `initialize'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/inheritance.rb:61:in `new'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/inheritance.rb:61:in `new'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/activerecord-4.2.1/lib/active_record/persistence.rb:33:in `create'
from (irb):1
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/railties-4.2.1/lib/rails/commands/console.rb:110:in `start'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/railties-4.2.1/lib/rails/commands/console.rb:9:in `start'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/alexander/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/railties-4.2.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'irb(main):002:0>
Ce que j'ai essayé jusqu'ici:
- Je roulais tout en place et enlevé tous les fichiers générés et ont fait tout à la main à nouveau .
- installer à nouveau le paquet dans le cas où quelque chose est obsolète
Je ne comprends pas vraiment ce que l'erreur est donc si quelqu'un pouvait me aider je l'apprécierais beaucoup.
PS: J'ai lu sur github que cela pourrait être un problème avec le "rb-fsevent" petit bijou, mais mes journaux DonT montrer la même chose:
https://github.com/guard/listen/issues/431
MISE À JOUR:
Mon modèle newsletter
class Newsletter < ActiveRecord::Base
end
PS: Je courais rubis 2.3.0
Pouvez-vous partager votre fichier de modèle 'Newsletter'? –
Il est vide, je vais l'ajouter maintenant –
Impossible de reproduire. –