1
私はこれを他のコントローラと非常によく似ていましたが、この関係をagreements_controller
という別のコントローラに変更する必要がありました。私は1つのモデルを持っています。 review has one and belongs to agreements
。初期化されていない定数ReviewController ::レビュー
行が正しく作成されないのはなぜですか?
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
私は同じような例をオンラインで見つけようとしましたが、入れ子になったフォームしか見つかりませんでした...入れ子になったフォームは必要ありません。
私はそのモデルが特に単数であるとは言いません。見れば、上の彼のコードサンプルは、 'Review'が彼のクラス名であることを証明します。 – Pachonk
モデルは常に単数形ではありませんか? – gates
は必ずしもそうではありませんが、デフォルトではそうです。それらは '--force-plural 'で強制的に複数として生成することができます。この場合、「本当の」答えは、上に示したようなモデルが特異であるため、コントローラは彼のコードが読んだときに呼び出さなければならないということです。 – Pachonk