ruby-on-rails - 从控制器提交表单后渲染表格
问题描述
我是 Rails 新手,无法找到可以帮助我实现目标的资源。
基本上我有一个视图,它有一个表单来收集一些数据,在点击提交时,我希望控制器处理数据(获取更多信息)并呈现一个 1 行表。
这是我的表格(查看)
<form action="track/do_track" name="track" id="track-form" class="ajax" method="post">
<div class="table-bar">
<input type="button" value="Submit" name="Submit" class="uiButton unitExt" id="confirm_submit_button" onclick="submit()"/>
<div class="fclear"></div>
</div>
<div id="table" class="table">
<div class="line thead">
<div class="unit th" style="width:160px"><span class="scan-icon-white">ID</span></div>
<div class="unit th" style="width:175px">
A/B
</div>
</div>
<div class ="line tr" >
<%= content_tag :div, :class=>"unit td" do %>
<%= text_field_tag("shipment_id","",:id=>"id", :class=>"shipment-text padding5", :autofocus => true)%>
<% end %>
<%= content_tag :div, :class=>"unit td" do %>
<select class="mh-ph fk-select-box" name="a-b" id="mf-ph">
<option id="a" value="A">MotherHub</option>
<option id="b" value="B">PickupHub</option>
</select>
<% end %>
</div>
</div>
</div>
</form>
在路线.rb
match "/track/track_page" => "track#track_page"
match "/track/do_track" => "track#do_track"
do_track
在点击提交时,我正在调用track_controller
def do_track
# some processing
# render a table in the same view
end
def track_page
render
end
如何实现在同一页面上只呈现一个新表?
解决方案
为此,您将需要一些 Javascript(除非您想再次重新渲染整个页面)。
我建议您查看在 Rails文档中使用 Javascript 以获取一些有用的示例。
Server Side Concerns部分是您想要的案例的最基本和最简单的方法。
推荐阅读
- performance - 将矩阵与 repa 相乘
- ssh - 无法建立到 EMR 集群 UI 的 SSH 隧道
- error-handling - Laravel 5.8:管理来自队列的失败邮件通知
- arduino - ATmel 处理器不调用 LLVM 全局构造函数
- sql - SELECT rows HAVING 结果等于 DISTINCT 中的值列表
- mysql - SQL 语句中的 OUTER JOIN 语法错误“
- python - 为什么熊猫数据帧 to_dict("records") 与另一个幼稚的实现相比性能很差?
- java - Netbeans 控制台保留所有行
- javascript - 从纪元字符串javascript获取天数
- backup - 我可以将 QuestDb 中的数据表文件夹复制到另一个实例吗?