我目前正試圖在我的應用程序中實現多態註釋,但我遇到了轉換部分表單的問題。Ruby on Rails - 通過部分創建多態註釋
我按照本教程的step-by-step-guide-to-polymorphic-associations-in-rails,但沒有涉及本節。
主要是,我有一個可評論的圖片,以及底部的一個部分,以允許用戶評論圖片。
但是,在提交表單時,無法找到@commentable
對象,因爲params[:id]
和params[:image_id]
都爲零。
我有問題了解我應該如何傳遞這些信息,因爲部分知道這些信息,但控制器不知道。
//圖像/ show.html.erb
<div class="container comment-form" >
<%= render 'comments/form', comment: @image.comments.build %>
</div>
//註釋/ _form.html.erb
<%= bootstrap_form_for(comment) do |f| %>
<%= f.text_area :message, :hide_label => true, :placeholder => 'Add a comment' %>
<%= f.submit 'Reply', :class=> 'btn btn-default pull-right' %>
<% end %>
// comments_controller.rb
def create
@commentable = find_commentable
@comment = @commentable.comments.build(comment_params) <<<<<
respond_to do |format|
if @comment.save
format.html { redirect_to (comment_path @comment), notice: 'Comment was successfully created.' }
format.json { render :show, status: :created, location: @comment }
else
format.html { render :new }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
end
錯誤上@comment = @commentable.comments.build(comment_params)
undefined method
評論'for零:NilClass`
我也注意到在請求參數中沒有id
。
參數:
{"utf8"=>"✓", "authenticity_token"=>"xxxxxx", "comment"=>{"message"=>"nice photo"}, "commit"=>"Reply"}
感謝您的幫助。
*請注意,這與多態關聯沒有任何關係。在這種情況下,'polymorphic'意味着它們很聰明,並且可以計算出你拋棄它的任何對象的路徑。 – max
我能夠得到這個工作,但在我的'form_for'中使用'commentable'而不是'@ commentable'。還需要確保資源嵌套,以便路線存在。 –