[英]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.