Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails3和Ajax交互_Javascript_Jquery_Ruby On Rails_Ruby_Ajax - Fatal编程技术网

Javascript Rails3和Ajax交互

Javascript Rails3和Ajax交互,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我是RubyonRails的初学者,我在练习Ajax,但不幸的是,我似乎无法让Ajax正常工作。我正试图在脚手架上对我的删除进行调整 这是我的控制器: class PlantsController < ApplicationController # GET /plants # GET /plants.json def index @plants = Plant.all respond_to do |format| format.html #inde

我是RubyonRails的初学者,我在练习Ajax,但不幸的是,我似乎无法让Ajax正常工作。我正试图在脚手架上对我的删除进行调整

这是我的控制器:

class PlantsController < ApplicationController
  # GET /plants
  # GET /plants.json
  def index
    @plants = Plant.all

    respond_to do |format|
      format.html #index.html.erb
      format.json { render json: @plants }
    end
  end

  # GET /plants/1
  # GET /plants/1.json
  def show
    @plant = Plant.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @plant }
    end
  end

  # GET /plants/new
  # GET /plants/new.json
  def new
    @plant = Plant.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @plant }
    end
  end

  # GET /plants/1/edit
  def edit
    @plant = Plant.find(params[:id])
  end

  # POST /plants
  # POST /plants.json
  def create
    @plant = Plant.new(params[:plant])

    respond_to do |format|
      if @plant.save
        format.html { redirect_to @plant, notice: 'Plant was successfully created.' }
        format.json { render json: @plant, status: :created, location: @plant }
      else
        format.html { render action: "new" }
        format.json { render json: @plant.errors, status: :unprocessable_entity }
      end
    end
  end

  # PUT /plants/1
  # PUT /plants/1.json
  def update
    @plant = Plant.find(params[:id])

    respond_to do |format|
      if @plant.update_attributes(params[:plant])
        format.html { redirect_to @plant, notice: 'Plant was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @plant.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /plants/1
  # DELETE /plants/1.json
  def destroy
    # binding.pry
    @plant = Plant.find(params[:id])
    @plant.destroy

    respond_to do |format|
      format.html { redirect_to plants_url }
      format.js
      format.json { head :no_content }
    end
  end
end
class PlantsController
下面是它的视图:

<h1>Listing plants</h1>

<table class="show">
  <tr>
    <th>Name</th>
    <th>Comment</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<%= render "plants/plant" %>

</table>

<br />

<%= link_to 'New Plant', new_plant_path %>
植物名录
名称
评论

以下是我的部分观点:

<% @plants.each do |plant| %>
  <tr>
    <td><%= plant.name %></td>
    <td><%= plant.comment %></td>
    <td><%= link_to 'Show', plant %></td>
    <td><%= link_to 'Edit', edit_plant_path(plant) %></td>
    <td><%= link_to 'Destroy', plant, confirm: 'Are you sure?', :method => :delete, :remote => true %></td>
  </tr>
<% end %>

:delete,:remote=>true%>
最后,这里是假定的destroy.js.erb,它将刷新DOM:

$('.show').html("<%= render @plant %>");
$('.show').html(“”);
有人可以照一下这个吗

其他信息:


问题是,当我点击
Destroy
链接时。。。记录正在被删除,但DOM没有呈现,我必须刷新以查看更改:(

经过多次尝试,我尝试了一个新的教程,该教程对我很好。教程的链接位于底部。如果我发现了此问题的解决方案,我仍将更新此帖子


教程链接--->

经过一个晚上的思考和进食,我制定了以下解决方案

首先,我将描述问题的根源。这段代码似乎是
$('.show').html(“”)
,rails正在尝试渲染route“/plants/:id/”,但不幸的是,您刚刚删除了它。我所做的工作是在
@Plant=Plant.all
下面添加
@Plant.destroy
代码,在
destroy.js.erb
中,我渲染了部分,它是这样的:

$('.show').html("<%= render 'plants/plant' %>");
$('.show').html(“”);

使用该代码,它将使用新的查询值集呈现部分。希望我解释得正确。

我认为您的控制器需要一个名为“Destroy”的“format.js”。我也是Rails新手,但我会尝试:respond_to do | format | format.html#new.html.erb format.json{render:@json@plant}endHey朋友,我有'format.js',只要向下滚动一点,你就会看到它在我的控制器中定义:)哦!我没有注意到滚动条。对不起,睡眠不足:]