繁体   English   中英

Ruby on Rails我有两种形式,如何在一种形式内移动一种形式的Submit标签?

[英]Ruby on Rails I have two Forms, How Do I move the submit tag of one form inside another form?

我有两种形式:

= form_for @form_one, :url => form_path do |f|
  = f.hidden_field :promotion_id
  = f.label :page_title, 'After Like: Page Title'
    = f.submit 'Update', :class => 'smBlueButton'

= render :partial => 'form_two'

如何从表单2下方的表单1移动提交标签,在表单1之前显示表单2的提交标签?

这不起作用:

   = form_for @form_one, :url => form_path do |f|
      = f.hidden_field :promotion_id
      = f.label :page_title, 'After Like: Page Title'
    = render :partial => 'form_two'
      = f.submit 'Update', :class => 'smBlueButton'

可以有2个提交标签,但您只能有一种形式。 提交标签都将回发到form_for声明中定义的表单控制器操作。 在控制器操作中,您需要做的只是检查按钮文本值的commit参数(params[:commit] ),然后在基于该值的条件下采取相应的措施。

因此,请从第2部分中删除form_for(也许可以在此处使用fields_for),将提交按钮移至form1所需的任何位置,然后检查commit params哈希值是否合适

例如

def update
  if params[:commit] == 'Update form 1'
    #do something
  elsif params[:commit] == 'Update form 2'
    #do something else
  else
    #Rails an error - You have not set the right values in your form submit buttons
  end
end

最好将i18n用于按钮文本,并使用控制器逻辑来测试按钮文本,然后可以随意将按钮文本更改为所需的内容,而不会弄乱控制器中的检查内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM