[英]using respond_to format.js to replace the content of a textarea on rails
[英]rails respond_to format.js API
我是一名经验丰富的JAVA和C ++开发人员,我正在努力了解rails的工作原理。
我在下面得到了这个代码:
respond_to do |format|
if @line_item.save
format.html { redirect_to store_url }
format.js { render :json => @line_item, :mime_type => Mime::Type.lookup('application/json'),
:callback => 'javascriptFunction' }
我一直在搜索定义我可以在format.js {}
内部传递的api,但我找不到..
首先: format.js
是什么样的语句,是一个变量?
最重要的是:我可以将哪些属性传递给format.js {}? 你能通过直接链接吗? 我搜索了http://api.rubyonrails.org/
respond_to do |format|
format.js # actually means: if the client ask for js -> return file.js
end
这里的js
指定控制器方法作为响应发回的mime类型;
默认Rails mime-types 。
如果你也尝试使用format.yaml
:
respond_to do |format|
format.js
format.yaml
end
这意味着你的控制器将返回yml
或js
具体取决于客户端要求的内容;
就红宝石而言, {}
是一个块 ; 如果你没有指定任何rails将尝试从app / views / [控制器名称] / [控制器方法名称]呈现默认文件。[html / js / ...]
# app/controllers/some_controller.rb
def hello
respond_to do |format|
format.js
end
end
将寻找/app/views/some/hello.js.erb
; //至少在Rails v.2.3中。
如果你确实指定了阻止:
respond_to do |format|
# that will mean to send a javascript code to client-side;
format.js { render
# raw javascript to be executed on client-side
"alert('Hello Rails');",
# send HTTP response code on header
:status => 404, # page not found
# load /app/views/your-controller/different_action.js.erb
:action => "different_action",
# send json file with @line_item variable as json
:json => @line_item,
:file => filename,
:text => "OK",
# the :location option to set the HTTP Location header
:location => path_to_controller_method_url(argument)
}
end
我相信这是你要找的网址:
https://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to
这也可能有助于一些,一看就知道你其实可以直接在format.js方法渲染的js,比如你只需要你想返回一个小行的js语句,你不想推迟到像controller_action_name.js.erb
这样的RJS文件:
respond_to do |format|
format.html { redirect_to new_admin_session_path }
format.js { render :js => "window.location='#{ new_admin_session_path }'" }
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.