On Aug 15, 2014, at 2:57 PM, Turcu Marius <li...@ruby-forum.com> wrote:
> i have 2 models > class User < ActiveRecord::Base > has_many :notes, :dependent => :destroy > accepts_nested_attributes_for :notes > devise :database_authenticatable, :registerable, > :recoverable, :rememberable, :trackable, :validatable > > end > > > class Note < ActiveRecord::Base > belongs_to :user > validates :content, presence: true,length: { minimum: 15 } > > end > > the database schema > > create_table "notes", primary_key: "note_id", force: true do |t| > t.text "content" > t.integer "user_id" > end > > > > create_table "users", primary_key: "user_id", force: true do |t| > t.string "first_name" > t.string "last_name" > t.string "email", default: "", null: false > t.string "encrypted_password", default: "", null: false > t.string "reset_password_token" > t.datetime "reset_password_sent_at" > t.datetime "remember_created_at" > t.integer "sign_in_count", default: 0, null: false > t.datetime "current_sign_in_at" > t.datetime "last_sign_in_at" > t.string "current_sign_in_ip" > t.string "last_sign_in_ip" > t.datetime "created_at" > t.datetime "updated_at" > t.boolean "admin", default: false > end > > this is my method for saving notes > def save_note > @note = Note.new(lesson_params) > > if @note.save > flash[:notice] = "You have successfully add a lesson." > redirect_to pages_home_url > else > flash[:notice] = "Failed." > redirect_to pages_home_url > end > end > I assume the above code is in a CONTROLLER. If so, you should stick to the controller actions index, new, create, edit, update, and show. Avoid creating a controller action with another name. You didn't show us the VIEW. In the VIEW, does the form you are submitting contain a user_id ? If not, that is why you don't have a user_id in your notes record. If this note is supposed to be associated to the currently logged in user, you'll want to add before_filter authenticate_user! to the top of your controller, and also in your create method do something like this: current_user.notes.create(lesson_params) You will find this documented in the section marked "has_many Association Reference" on this page: http://guides.rubyonrails.org/association_basics.html#has-many-association-reference (By the way, the current_user method itself comes from devise, which documentation you should thoroughly read here: https://github.com/plataformatec/devise) Finally, get yourself RubyMine and learn how to use the Go-To-Declaration (Command-B). Do that NOW before you go any further. (Another IDE is acceptable too if it has Go-To-Declaration functionality) > > private > > def lesson_params > params.require(:note).permit( > :content) > end > end > > when i save a note isn't put in my database the user_id and I don't know > why...I have to extract the curent user_id and i don't preaty much kknow > how to do it. Also, i check in console and this i get :" INSERT INTO > `notes` (`content`) VALUES ('asdasd asdakshdasmd ')". It seems like my > user_id isn't inserted in db. i came from another world called php and > there the things are different. > > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-talk+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rubyonrails-talk/ed67b2d2cb8937bf30ffd1595db591b6%40ruby-forum.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/E711BB1D-FC34-4239-9469-4C794E146BED%40datatravels.com. For more options, visit https://groups.google.com/d/optout.