我有一个将数字转换为单词的javascript,它使用输入id =西班牙语。 http://jsfiddle.net/fiddleyetu/RQ7R4/74/
我创建了其他javascript,将输入值显示为text_field_tag,如重复值。
<script>window.onload=function(){document.getElementById('money_word').value=document.getElementById('Spanish').value;}</script>
我正在尝试更新“动作节目”中的一列,但没有更新任何内容,似乎没有阅读money_word参数
这是表格
|invoices|
|id| |money| |money_word|
1 1000 one thousand
2 2000 two thousand
3 3000 three thousand
这是控制器
def show
@invoice= Invoice.find[params[:id]]
@money= params[:money_word].to_s
@query= Invoice.update_all(["money_word = '#{@money}' ",@money ], ["id = ?",params[:id] ])
end
以下是视图:
<input id="Spanish" NAME="Spanish" class="input_blank" value="ONE THOUSAND"
<script>window.onload=function(){document.getElementById('money_word').value=document.getElementById('Spanish').value;}</script>
<%= text_field_tag "money_word", @money %>
这是日志:
Processing InvoiceController#show (for 127.0.0.1 at 2014-06-25 15:39:44) [GET]
Parameters: {"id"=>"57"}
Invoice Load (0.1ms) SELECT * FROM `invoices` WHERE (`invoices`.`id` = 1)
Invoice Update (34.7ms) UPDATE `invoices` SET money_word = '' WHERE (id = '1')
Rendering invoice/show
请有人可以帮助我或建议我以其他方式保存号码的翻译?
答案 0 :(得分:1)
由于您要更新单个记录,因此没有理由使用update_all。只需在已经加载的@invoice上调用update_attributes:
@invoice.update_attributes(money_word: @money)
答案 1 :(得分:1)
不确定为什么要在show action中执行此操作,但请尝试:
params[:invoice][:money_word]
而不是
params[:money_word]