写 view 的时候遇到了个问题 form_tag 中有两个 button 一个是提交到 form_tag 里面的 controller,接下来一个是提交到另外一个 controller 但每次提交下面这个的时候总是跳到 form 里面设置的那个控制器,怎样才能区别这两个 button 呢,试过加 id 啊 加 name 属性啊都不行,望大家帮忙解决下,感谢
js 判断?
肯定得写 JS,修改 form 的 action 属性
简单起见可以用同一个 action 根据 submit 的值不同处理不同逻辑
试了下 input type="submit" name="button_name" 就这样硬写是没有问题的,改 button 标签这样就不行 有谁知道原理不 硬写 css 全部乱了 郁闷啊
放个 hidden field 提交前根据按钮来更改这个 hidden field 的内容,比如这样:
<input id="submit_type" name="type" type="hidden" value="save" /> <button type="submit" onclick="return submit('save');">保存</button> <button type="submit" onclick="return submit('draft');">保为草稿</button> <script type="text/javascript"> function submit(withType){ $("#submit_type").val(withType); } </script>
#3 楼 @Rei 正解,用一个 controller 来处理,不同的 submit value 走不同的流程既可,如果非要用两个 controller,我建议你用 Ajax 来提交。
#4 楼 @jrejie
View
<%= f.submit 'action_one' %> <%= f.submit 'action_two' %>
Controller
case params[:commit] when 'action_one' do_some_one when 'action_two' do_some_two end
遇到问题冷静下来,看看控制台日志
ok 了 感谢各位 最后还是加了段 js