相关疑难解决方法(0)

Rails检测请求是否是AJAX

在我的操作中,我希望只响应处理,如果它是从AJAX请求调用的.我该如何检查?

我想做这样的事情:

def action
   @model = Model.find(params[:id])

   respond_to do |format|

      if (wasAJAXRequest()) #How do I do this?

         format.html #action.html.erb

      else

         format.html {redirect_to root_url}
   end
end
Run Code Online (Sandbox Code Playgroud)

ajax ruby-on-rails

123
推荐指数
3
解决办法
6万
查看次数

Rails - 更新div与Ajax和:remote => true

我已经按照这个Railscast通过Ajax提交表单并更新div而不重新加载页面,但我遇到了一部分问题.

Ryan $("#products").html("<%= escape_javascript(render(@products)) %>");在提交表单时在index.js.erb文件中更新了#productsdiv.我很难理解一个实例变量@products是否与我的情况相关,或者我是否可以简单地将其替换为URL.

我试图在这个截屏视频中做与Ryan相同的事情,但是我只想显示更新的值而不是显示搜索结果.

在show.html.erb我有:

<% @project.project_todos.order("created_at DESC").where(:status => false).each do |todo|%>

<%= form_for todo, :remote => true, :"data-replace" => "#dueon" do |f| %>
   <%= f.text_field :due %>
   <%= f.submit :class => "primary", :value => "Add" %>
<% end %>

<div id="dueon">
   <%= render "duedate", :todo => todo %>
</div>

<% end %>
Run Code Online (Sandbox Code Playgroud)

部分_duedate.html.erb有一行:<%= todo.due %>

所以在我的index.js.erb中,我目前有这个:$("#dueon").html("<%= escape_javascript(render("_duedate")) %>");但它显然不起作用.我是否必须在此处使用变量代替_duedate?如果是这样,我将如何在控制器中设置它?我的意思是变量代表了什么?

此外,对于它的价值,部分正确渲染并显示todo.due值...它只是在我提交表单时不更新. …

ajax ruby-on-rails ruby-on-rails-3

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

ajax ×2

ruby-on-rails ×2

ruby-on-rails-3 ×1