Rails:条件更改表单方法

时间:2012-08-26 23:06:42

标签: ruby-on-rails ruby-on-rails-3

我正在开发一个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()。关于如何使其发挥作用的任何想法?

2 个答案:

答案 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,因为我认为它不会改变任何内容,如果重要的话,请将其添加回来。)