入れ子リソースを持つform_forに関する質問が1つあります。私はブログのようなものを作成し、投稿、コメント、コメントのコメント(返信など)を作成します。問題があります。そして、私はそれをコメントにしよう:コメントのform_forネストされたリソース(投稿、コメント)
new.html.erb:
<div class= "container" %>
<%= form_for @comment do |f| %>
<%= f.input :title %>
<%= f.text_area :body %>
<%= f.submit %>
<% end %>
</div>
マイ: "get_parentレンダリングや 完了302見つからをリダイレクトhttp://localhost:3000/ フィルター・チェーンにリダイレクトと停止"コメントコントローラ:
before_filter :get_parent
def new
@comment = @parent.comments.build
end
def create
@comment = @parent.comments.build(params[:comment])
@comment.user_id = current_user.id
if @comment.save
redirect_to posts_path(@comment.post), :notice => 'Thank you for your comment!'
else
render :new
end
end
private
def comment_params
params.require(:comment).permit(:body, :title, :user_id, :commentable_id, :commentable_type)
end
def get_parent
@parent = Post.find_by_id(params[:post_id]) if params[:post_id]
@parent = Comment.find_by_id(params[:comment_id]) if params[:comment_id]
redirect_to root_path unless defined?(@parent)
end
end
ポストモデル:
has_many :comments, as: :commentable
belongs_to :user
def post
commentable.is_a?(Post) ? commentable : commentable.post
end
コメントモデル:
belongs_to :user
belongs_to :commentable, polymorphic: true
has_many :comments, :as => :commentable
路線:
resources :posts do
resources :comments
end
resources :comments do
resources :comments
end
post_show.html.erb
アプリでGitHubのレポ:https://github.com/Dmitry96/dasasd
、ありがとうございました。私はこのフォームとコントローラで(comment_params)に切り替えました。それは働き始める – ApecBrah