My code works when I run the action like this,
def interest
@interest = Interest.new
@interest.user_id = current_user.id
@interest.idea_id = @idea.id
@interest.save
@ideas = Idea.take(10)
flash[:notice] = "A message has been sent to the poster."
render "ideas/forum"
end
But,why do I get an undefined method for 'interest' when I use this line in my Interest action?
@interest = current_user.ideas.interest.create(params[:interest])
Here's my Idea model
class Idea < ActiveRecord::Base
belongs_to :user
:title
:category
:content
:user_id
:createdDate
:updatedDate
Here's my User model (Devise)
class User < ActiveRecord::Base
has_many :ideas
has_many :interests
end
Here is the button_to
tag
<%= button_to "I'm Interested", ideas_interest_path(:id => idea.id, :idea_id => idea.id, :user_id => idea.user_id) ,class: 'btn btn-primary' %>
And my route,
resources :ideas do
resources :interests
end
Interest Model class Interest < ActiveRecord::Base belongs_to :user belongs_to :idea
has_many :users
:idea_id :user_id
end
NoMethodError - undefined method `interest' for #<Idea::ActiveRecord_Associations_CollectionProxy:0x007f9e5189bab0>:
activerecord (4.2.0)
has_and_belongs_to_many :interests
in your Idea model. – Sharvy Ahmed