我对rails非常不熟悉,所以我认为我的问题非常简单。我基本上在视图页面上有一个对象提交按钮(因此运行创建并保存指定的对象)但是在选择按钮时我不希望视图完全改变(所以只留下已经加载的同一页面) )。我在我的对象控制器中编辑创建操作时遇到了问题,因此视图没有任何反应(这是否可能?或者是每个操作必须出现新视图的想法)。
感谢您的帮助! 丽莎
答案 0 :(得分:1)
因此,您希望存储该对象,并且您不希望更改该URL。
在您的创建操作中,保存对象后。重定向到该视图。
如下所示:
$ if @object.save
redirect_to :action => "index"
# or
# redirect_to object_path # you can set this in config/routes.rb
# or
# redirect_to :action => "show", :id => @object.id
答案 1 :(得分:1)
您可以使用ajax请求执行此操作:
在控制器中创建一个动作来完成创建所需对象的工作:
class SomeController < ApplicationController
def index
#this is your view controller
end
def youraction
#create an object
render :nothing => true
end
end
然后使用执行ajax请求的javascript函数绑定您的按钮:
HTML
<button id="submit_button">Submit</button>
的Javascript
$(document).ready(function (){
$('#submit_button').click(function(){
$.ajax({
url: 'url_to_the_controller/youraction',
type: 'POST'
success: function (){
alert('success');
},
error: function (){
alert('error');
}
});
});
}
答案 2 :(得分:1)
这可以通过在控制器中创建一个动作来完成,
class YourController < ApplicationController
def index
end
def youraction
end
end
,然后在routes.rb中设置一条路径
然后只需将表单设置为指向该网址并添加
即可remote: true
表单标记的选项。