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.

Reply via email to