Я использую помощник по форме submit_tag
в одном из своих приложений. Значение этой кнопки отправки должно изменяться динамически. Два возможных значения для этой кнопки отправки - Save
и Update
. Итак, по мнению, я сделал что-то вроде следующего:
<% temp = 0 %>
<% text = '' %>
<% temp = ActivityLog.find_by_sql("SELECT COUNT(id) AS cnt FROM logs WHERE id > 0")%>
<% text = temp[0][:count].to_i > 0 ? 'Update' : 'Save' %>
<!-- other html contents -->
<%= submit_tag text, :id=>"submitBtn"+i.to_s, :onclick=>"submit_button_clicked(this)"%>
Теперь, когда я запускаю представление в браузере, я вижу желаемый эффект. Но контроллер rails получает ошибочное значение для опций commit
в хэше params
.
Например, когда значение text
оценивается как Save
, я получаю в Firebug следующее:
<input type="submit" value="Save" style="" onclick="submit_button_clicked(this)" name="commit" id="submitBtn3">
Но raise params.inspect
в связанном контроллере показывает следующее:
{"commit"=>"Update",
"authenticity_token"=>"",
"time"=>{"292"=>"3.0",
"2"=>"1.0",
"456"=>"4.0"},
"date"=>"2011-09-20"}
См., Хотя значение кнопки Submit отображается в HTML как Save
, контроллер rails показывает значение commit
как Update
. Что здесь не так?