我在Rails 3.2中有一个数据表的脚手架。当我查看表单时,我有一个组合框,用户可以更改该值,并且该值将立即存储在数据库中,而无需进入编辑模式并在那里进行更改并按保存。
我使用coffeescript捕获了更改后的值:
$(document).ready ->
$("#change_department").change ->
$ajax
url: "/Locations/" + # need to set id and new value here
success: (data) ->
alert data # will need to write a confirmation below the combobox
我最重要的是我应该调用哪个控制器操作以及我应该如何准备数据。我想创建一个新的控制器动作,我将传递模型的id和组合框和控制器中的新值,我会找到模型并传入更改的值。这可能应该是一个在网址中有两个参数的get方法(我不知道如何使用post进行此操作)。这是一个很好的方法,还是有人建议替代方法?
如何在上面的coffeescript代码中获取id和更改后的值?
由于
答案 0 :(得分:2)
1)更新数据时,请使用PUT请求。这是Rails的基本REST风格(GET
→show
,POST
→create
,PUT
→update
,{{ 1}}→破坏)。所以基本上,要调用的动作是DELETE
(根据您发布的代码判断)。无需新动作
2)将整个更新路径放在元素的LocationsController#update
属性中。我假设你的意思是"下拉"当你说" combobox",在这种情况下,它就像data-
<select id="change_department" name="location[department]" data-uri="/Locations/23"> ...
在控制器端,更新操作可以保持不变。