Search code examples
ruby-on-railsrubyformsactiverecordhas-one

uninitialized constant ReviewsController::Reviews


I had this working very similar to another controller however i needed to change this relation to another controller called agreements_controller. I want to create a has one model. review has one and belongs to agreements.

Why isn't the row being created properly?

reviews_controller:

class ReviewsController < ApplicationController

  def create
     @review = Reviews.create(review_params)
  end


  private

  def review_params
    params.require(:review).permit(:comment, :star, :agreement_id, :user_id, :reviser_user_id)
  end

end

_form.html.erb

<%= form_for([agreement, agreement.build_review] ) do |f| %>

<% end %>

agreement.rb

class Agreement < ActiveRecord::Base
  has_one :review, :dependent => :destroy
end

review.rb

class Review < ActiveRecord::Base
  belongs_to :agreement   
  belongs_to :reviser_user
  belongs_to :user
end

I've tried to find similar examples online, but all I could find was nested forms... I don't need a nested form I just want the review to create as a has one.


Solution

  • Models are Singular. Use

    Review.create(review_params)