我有一个表单,通过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)
我只需要制作一个替代的节目视图,然后告诉它重定向到该视图.
我基本上有一个动作,因为逻辑需要返回另一个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)