だから、私は購読フォームを作っています。
Jクエリ
$("<div id='dialog' title='Subscribe!'> <form id='subscribe_form' method='POST' action='/user/subscribe'>" +
"<input type='text' name='subscribe_email' id='email' placeholder='Email Address'> <br/>" +
"<button id='submit_subscribe_form'>Submit</button></p><p id='ruby_bool'></p></form>" +
"</div>").appendTo($("#subscribe"));
このフォームが送信されると、Ruby Sinatra リスナーに ajax 呼び出しが送信されます (正しい用語を使用していない場合は申し訳ありません。実際に Sinatra を学んでおらず、使用方法を示しただけです)。
$('form').submit(function(){
$.ajax({
type: "POST",
url: "/user/subscribe",
data: $('form').serialize(),
success: function()
{
ルビーコード
post "/user/subscribe" do
user_Information = EmailList.new
if params[:subscribe_email] =~ /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/
user_Information.email = params[:subscribe_email]
puts user_Information.save
@email_validation_result = "True"
else
@email_validation_result = "False"
end
puts @email_validation_result
(はい、正規表現を使用すべきではないことはわかっていますが、見つけたエンジンは PHP 用でした) @email 検証結果を使用して、成功に何を入れるべきかを知りたい: ajax を呼び出します。問題は、JavaScript が Ruby インジェクションを許可していないことです (私の神によれば、調査に何時間もかかっていることを知っています)。その変数 async を含む Web ページの div を更新できません。これをすべて非同期で実行したいので、ページ全体の更新はまったくありません。(そうでなければそれが不可能な場合は認めますが、それは非常に疑わしいです)。div を別のページに配置して JQuery .load() 関数を使用しようとしましたが、.erb ファイルを認識できません。アイデアがなく、ほとんど正気ではありません。ありがとう!