我有new
和create
这样的动作:
def new
@foo = Foo.new
end
def create
@foo = Foo.new(foo_params)
respond_to do |format|
if @foo.save
format.html { redirect_to root_path }
else
format.html { render :new } //**this line I want to send params**
end
end
end
我有一个jbuilder文件可以执行以下操作:
new.json.jbuilder
json.foo do
json.a "Some important info"
json.b "Some important info"
end
在创建的验证失败后,Rails无法读取此文件。如何呈现视图模板(如render :new
)并在此视图中发送一些json数据?
我有一个这样的js调用:
var json_url = window.location.href + ".json";
var foo;
$.ajax({
url: json_url,
dataType: 'json',
async: false,
success: function(data) {
foo = data.foo;
}
});
答案 0 :(得分:0)
如果您希望Rails渲染文件,则需要删除对Redirect 301 /* /index.php/*
RedirectMatch 301 /*(.*)/? /index.php/$1
的调用,因为它将有效地阻止任何渲染。
此外,如果您不希望控制器响应不同的格式,最好也跳过对redirect_to
的调用。
如果仅调用respond_to
,则视图模板将有权访问所有控制器实例变量(例如render action: :new
):
@foo