Ruby On Rails 一个提交键传递不同参数到两个post函数

最近在学习ruby on rails中遇到一个问题,如何用一个<%= form_for%><%end%>标签,以及一个提交按钮,发送两个数据分别到不同的响应函数中,查了网上的一些资料,最后选择了以下的方法。
方法很简单,写俩个form_for函数,把第二个隐藏起来,然后在调用js,在点击第一个form_for 提交按钮的时候,触发第二个提交按钮事件。在form_for中有一个选项是:remote => true意思是是用ajax的方式提交数据,这样可以使页面保持在当前页面不刷新,以下代码会在第一个提交键中是用remote=>true。
比如:现在有两个表,一个班级的表,一个老师-班级表,现在我们要在一个窗口中给班级选择老师,我们现在要传递两个数据给不同的post函数,老师id给班级表,老师id和班级id给班级表,那么代码如下:

<%= form_for @teacher, :remote => true, :method => :put  do |f| %>
    <label>teacher</label>
    <!--这里的select是一个下拉框,里边包含了所有的@teachers参数中的教师名字,以供用户选择-->
    <%= f.select :teacher_id, @teachers,{}%>
    <%= f.submit 'save', :id => 'update_teacher_id'%>
    <% end %>
<% end %>
<%= form_for @teacher_class, :method => :post  do |f| %>
    <%= f.hidden_field :teacher_id, :value => @teacher.id %>
    <%= f.hidden_field :class_id, :value => @class.id %>
    <%= f.submit 'save', :id => 'submit_to_teacher_class', :style => 'display: none;'%>
<% end %>

<script type="text/javascript">
    $('#update_teacher_id').click(function(){
        $('#submit_to_teacher_class').trigger('click');    
    });
</script>

controller可以用默认生成的,无需做修改

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值