我正在开发一个rails应用程序,我有一个表单,我想根据条件更改方法(:put vs:post):params[id].to_s.present?
。这是我的尝试,但无论我做什么,我都会遇到各种错误:
<%= form_tag( country_pend_create_path(), "#{params[:id].to_s.present? ? ':method => :put' : ':method => :post'}", :class => 'form-horizontal') do %>
知道我知道form_for()
会自动执行此目的,但我不能也不想在此表单中使用form_for()
。关于如何使其发挥作用的任何想法?
答案 0 :(得分:1)
您可以简单地写为:
<%= form_tag( country_pend_create_path(), :method => params[:id].present? ? :put : :post, :class => 'form-horizontal') do %>
答案 1 :(得分:0)
尝试使用lambda:
<%= form_tag( country_pend_create_path(), :method => lambda { params[:id].present? ? :put : :post }, :class => 'form-horizontal') do %>
(我删除了to_s
,因为我认为它不会改变任何内容,如果重要的话,请将其添加回来。)