Javascript 如何使用jQuery从application.js文件调用控制器操作?

Javascript 如何使用jQuery从application.js文件调用控制器操作?,javascript,jquery,ruby-on-rails,ruby,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ruby,Ruby On Rails 3,我正在使用jQuery自动完成插件,我想自定义此事件: select: function(event, ui) { $('.topic_field').val(ui.item.topic.name); return false; 本质上,当从下拉列表中选择一个元素时,它会触发回调。到目前为止,它只将所选元素添加到文本字段中。我希望填充字段,并让我的应用程序向视频更新控制器操作发送POST请求,这样用户就不需要显式按下按钮。我该怎么做 更新: 以下是视

我正在使用jQuery自动完成插件,我想自定义此事件:

select: function(event, ui) {
           $('.topic_field').val(ui.item.topic.name);
           return false;
本质上,当从下拉列表中选择一个元素时,它会触发回调。到目前为止,它只将所选元素添加到文本字段中。我希望填充字段,并让我的应用程序向视频更新控制器操作发送POST请求,这样用户就不需要显式按下按钮。我该怎么做

更新:

以下是视频控制器显示视图中的表单:

<%= form_for @video, :url => {:action => "update"}, :remote => true do |f| %>
  <div class="field">
  <%= f.text_field :topic_names, :class => "topic_field" %>
  </div>
  <%= f.submit "Add Topic" %>
<% end %>
这在my routes.rb中:

resources :videos
resources :video_votes
resources :users
resources :profiles
resources :genres
resources :topics
resources :topicables
resource :session
以下是我的更新操作:

def update
@video = current_user.videos.find(params[:id])

respond_to do |format|
  if @video.update_attributes(params[:video])
    format.html { redirect_to(@video) }
    format.js
  else
    format.html { render :action => "edit" }
  end
end
end

使用jqueryajax函数从动作url/topics/list等获取数据

$.post('video/update', 
  data: {yourdata},
  function(data) {
    //callback function
  }
);
在视频更新中,请确保为js请求返回一些内容:

def update
   blah
   respond_to do |format|
     format.js { return somethinghere }
   end
end
查看有关如何将选择框中的数据发布到相关控制器操作的文档

我不熟悉autocomplete插件,但我认为它遵循选择框上的onChange事件。用户做出选择后,应执行以下未经测试的操作:

var url = $('myForm').attr('action');
var val = $('mySelectBox').val();
$.post(url, {data:val})
在控制器中,您可以使用以下方式访问此文件:

params[:data]

这将返回选择框的值。然后,您可以在控制器代码中正常使用该函数。

我通常在使用该函数时遇到问题。你能举个例子吗?当帖子出现时,你希望发生什么?是否只想更新数据库;重定向用户等。我想更新数据库,是的。我希望执行与单击表单按钮完全相同的操作。编辑我的答案。如果你能试试,我可以帮你,只要你能发布更多的试用/代码嘿,我已经用更多的代码更新了问题的详细信息。我只需要传递type选项和url选项作为与更新操作相对应的url吗?不需要传递type选项,因为它默认为POST,并且url选项在第一个参数中拾取字符串时不显式需要。在restful控制器中,更新url的格式为/resource_name/:id,即/posts/1ah ok,谢谢,-如何获取该资源的特定id?我是否只传递:id?如果选择框已经在表单中,您可以使用jQuery从表单中获取url。如果它不在表单中,我会在视图中插入id,可能是在select框中,并使用jQuery获取它。
params[:data]