相关疑难解决方法(0)

从rails中的控制器渲染部分

我有一个表单,通过remote => true向DB添加行.然后我想将新数据附加到表中,但无法获得正确的视图来呈现.

截至目前,它正在为新条目呈现整个show.html.erb页面,但我想布置一个最小版本作为一个添加.是否有一种快速方法可以告诉我的控制器在插入数据库后要呈现什么视图?我想渲染我的部分名为_newly_added.html.erb

我的控制器

  def new
    @task = Task.new
    render :partial => "/tasks/newly_added", :locals => { :t => @task }
  end
Run Code Online (Sandbox Code Playgroud)

谢谢!!

编辑 我认为我需要的只是另一种"展示"视图.

我发现我需要改变的方法实际上是这样的:

  def create
    @task = Task.new(params[:task])

    respond_to do |format|
      if @task.save
        format.html { redirect_to @task, notice: 'Task was successfully created.' }
        format.json { render json: @task, status: :created, location: @task }
      else
        format.html { render action: "new" }
        format.json { render json: @task.errors, status: :unprocessable_entity }
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

我只需要制作一个替代的节目视图,然后告诉它重定向到该视图.

ruby ajax controller ruby-on-rails

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

你如何使用Ruby on Rails响应控制器中的另一个js文件?

我基本上有一个动作,因为逻辑需要返回另一个js文件的内容.我该怎么做呢?谢谢

应用程序/控制器/ classrooms_controller.rb

def create
  if params[:test_logic]
    respond_to do |format|
      format.js { render 'create_differently' } # This doesn't work.
    end
  else
    redirect_to root_path
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/教室/ create_differently.js.erb

alert('hi')
Run Code Online (Sandbox Code Playgroud)

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

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

标签 统计

ruby-on-rails ×2

ajax ×1

controller ×1

ruby ×1

ruby-on-rails-3 ×1