Javascript Rails上的Ajax如何使用Ajax附加方法呈现HTML?
我不会说英语,请你谅解。对不起 /app/views/sale/index.html.erbJavascript Rails上的Ajax如何使用Ajax附加方法呈现HTML?,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我不会说英语,请你谅解。对不起 /app/views/sale/index.html.erb 我想在这里做ajax <div class="col-lg-4" style="padding:5px;" id=reply_preview> <%= render 'sale/billpreview'%> </div> 这是用于发送数据的按钮 <button type="submit" class="btn btn-defalut re
我想在这里做ajax
<div class="col-lg-4" style="padding:5px;" id=reply_preview>
<%= render 'sale/billpreview'%>
</div>
这是用于发送数据的按钮
<button type="submit" class="btn btn-defalut reply_sale" value="<%= m.id %>" name="menuid"
--------------------------------------------------------
总价
=================================
완료
初始化
取消
/app/controllers/home\u controller.rbdef billpreview
if current_user.store.billopen
@salesmenu = Salesmenu.new
@salesmenu.menu_id = params[:menuid]
@salesmenu.bill_id = current_user.store.bills.last.id
@salesmenu.save
@billshow = current_user.store.bills.last
else #
@bill = Bill.new
@bill.store_id = current_user.store.id #db connect (bill <-> store)
@bill.workperiod_id = current_user.store.workperiod.last.id #db connect (bill <-> workpeiod)
@bill.save
@salesmenu = Salesmenu.new
@salesmenu.menu_id = params[:menuid]
@salesmenu.bill_id = @bill.id
@salesmenu.qty = 1
@salesmenu.save
@billshow = @bill #current_user.store.bills.last
end
@temp_store = current_user.store
@temp_store.billopen = true
@temp_store.save
return head :no_content
#redirect_to :back
end
def billpreview
如果当前_user.store.billopen
@salesmenu=salesmenu.new
@salesmenu.menu_id=params[:menuid]
@salesmenu.bill\u id=当前用户.store.bills.last.id
@salessmenu.save
@billshow=当前用户.store.bills.last
否则#
@比尔=比尔
@bill.store_id=当前_user.store.id#数据库连接(bill store)
@bill.workperiod_id=当前_user.store.workperiod.last.id#db connect(bill workpeiod)
@比尔,救命
@salesmenu=salesmenu.new
@salesmenu.menu_id=params[:menuid]
@salesmenu.bill_id=@bill.id
@salesmenu.qty=1
@salessmenu.save
@billshow=@bill#current_user.store.bills.last
结束
@临时存储=当前用户存储
@temp_store.billopen=true
@临时存储
返回头:无内容
#重定向到:返回
结束
另外,我不知道返回头:无内容是什么意思
我只是在谷歌复制粘贴。
我不太确定这是否正确。
我说得对吗 在继续学习的过程中,您应该知道并必须学习以下几点: Rails链接附带一个内置函数,用于发送ajax请求,如下所示:
<%= link_to "My ajax request text", post_new(@post), remote: true %>
respond_to查看您的请求并确定它是HTML请求(无Ajax)还是Ajax请求。如果是Ajax请求,它会用Javascript文件响应,否则它会用HTML文件响应,默认情况下就是这样
在视图文件夹中,您现在需要为javascript文件创建一个新文件,Rails可以在执行Ajax请求时发送该文件:
billpreview.html.erb
billpreview.js.erb
billpreview.html.erb是您到目前为止一直在使用的工具。billpreview.js.erb是您在请求Ajax响应时将使用的内容
在billpreview.js.erb中,您可以使用与billpreview.html.erb中使用的相同的实例变量
#billpreview.js.erb
$('#id_in_your_view').append('<%= j render @salesmenu %>');
#billpreview.js.erb
$('your_视图中的'id_')。追加('');
通常,您会在视图中选择一个id($(“#id_in_your_view”)),您可以将内容附加或前置到该id。因为您使用的是javascript,所以您必须使用的不仅仅是“render”。一旦你理解了它背后的逻辑,它就会变得非常简单。祝你好运
我建议您观看以下两个youtube视频:
非常感谢。亚历山大·卢纳。我应该学习rails助手和链接到方法。但我不知道我在哪里。我可以用“”和“”交换吗。你的答案中的@post是什么?我没有post数据库。对不起,先生。。。之后,我将学习rails助手和链接。@post只是一个例子。你用它代替你的按钮。
<%= link_to "My ajax request text", post_new(@post), remote: true %>
def billpreview
# write all your logic and set instance variables for the objects you want
# @salesmenu
respond_to do |format|
format.html
format.js
end
end
billpreview.html.erb
billpreview.js.erb
#billpreview.js.erb
$('#id_in_your_view').append('<%= j render @salesmenu %>');