私は次のルートを持っています:
resources :organisations do
resources :comments, only: [:create, :destroy]
resources :events do
resources :comments, only [:create, :destroy]
end
end
AACWT の例のドキュメントが示唆するように、次のコードでイベントにコメントを追加してみますview/comments/_comments.html.erb
。
<%= form_for [commentable, Comment.new], :remote => false do |f|%>
これは、次によってレンダリングさviews/events/show.html.erb
れます。
<%= render :partial => "comments/comment", :locals => { :commentable => @event } %>
@event
それぞれのコントローラ アクションでどこに割り当てられます。
のcreate
メソッドcomments_controller.rb
:
def create
@commentable = Event.find(params[:commentable][:commentable_id])
@user_who_commented = current_user
@comment = Comment.build_from(@commentable, @user_who_commented.id, "Comment!" )
end
これを機能させるためにさまざまなことを試し、コードが問題を引き起こしているポイントに戻る必要があるため、現時点ではこれは正しくない可能性があります。問題は、コメント可能なパス、この場合はイベントを読み込もうとするevent_path
ことorganisation_event_path
です。これをメソッドに渡すにはどうすればよいですか?
私の考えはおそらくprocproc.new |organisation, event|
かそれに似たものによるものでしたが、それが私が行き詰まっているところです。私はまだ Rails と ActiveRecord の関連付けがどのように機能するかを学んでいます。構造に多くの変更を加え、ネストされていない独自のリソースとしてイベントを保持する必要がなくなり、他のあらゆる種類の問題が発生するため、ポインターは非常に高く評価されます。
そうは言っても、私は理想的にはこれを達成するためのベストプラクティスの方法を追求しているので、スキームの変更が必要な場合は、それを行う必要があると思います!