J'ai eu ce travail très similaire à un autre contrôleur mais je devais changer cette relation à un autre contrôleur appelé agreements_controller
. Je veux créer un a un modèle. review has one and belongs to agreements
.constante non initialisée ReviewsController :: Avis
Pourquoi la ligne n'est-elle pas créée correctement?
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
J'ai essayé de trouver des exemples similaires en ligne, mais tout ce que j'ai pu trouver était des formulaires imbriqués ... Je n'ai pas besoin d'un formulaire imbriqué que je veux juste que la critique crée.
Je ne dirais pas que les modèles sont singuliers autant que le modèle _his_ en particulier est singulier. Si vous regardez, son exemple de code ci-dessus prouve même que 'Review' est son nom de classe. – Pachonk
Les modèles ne sont pas toujours singuliers? – gates
pas toujours, mais par défaut ils le sont. Ils peuvent être générés de force au pluriel avec '--force-plural'. Dans ce cas, la "vraie" réponse est que le modèle _his_ comme indiqué ci-dessus est singulier, donc son contrôleur devrait l'appeler comme son code lit. – Pachonk