[英]Form has the wrong action when created by an ajax partial - Ruby
我有一個由ajax部分加載的表單。 當它被交換時,加載在該ajax局部文件上的表單定位到錯誤的控制器/ URL。 我試圖以多種方式來定位正確的控制器,但是它總是被相同,錯誤的控制器/ URL覆蓋。
此外,如果窗體在頁面刷新時加載,則窗體會正確加載-僅當由Ajax加載時,它才針對錯誤的控制器。
這是html加載不正確時的形式:
<form class="new_prediction" id="new_prediction" action="/predictions" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓">
這是html表單的外觀,以及頁面刷新后的外觀:
<form class="new_predictionend" id="new_predictionend" action="/predictionends" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓">
這是為頁面刷新和ajax加載而加載的部分表單:
<%= form_for(Predictionend.new, remote:true) do |f| %> <div class="sidebar-open-close-comment-div"> <%= f.text_area :comment, placeholder: "Make a closing comment", class: "close-comment-textarea" %> </div> <div class="sidebar-close-button"> <%= f.submit "SUBMIT", class: "btn" %> </div> <% end %>
這是加載表單的ajax文件:
$('.stockpage-sidebar-prediction').first().html("<%= j render partial: 'predictions/prediction_end', locals: {prediction: @prediction} %>");
加載ajax的控制器:
class PredictionsController < ApplicationController def create @prediction = @user.predictions.build(prediction) @prediction.save respond_to do |f| f.js { if invalid_start render 'shared/_error_messages.js.erb' else render "predictions/create.js.erb" end } end end end
路線:
post 'predictions' => 'predictions#create' get 'predictions/:id' => 'predictions#show' get 'predictions/hover/:id' => 'predictions#hover' post 'predictionends' => 'predictionends#create'
任何幫助將不勝感激。
我們在這里有兩個選擇,請在下面找到。
= form_for @model,:url => projections_url,:remote => true做| f |
要么
= form_tag(predictions_url,:method =>“ post”,:id =>“ model_form”,:remote => true)| f |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.