【发布时间】:2012-09-12 06:55:20
【问题描述】:
我有这个问题:我正在检查控制器中的用户电子邮件并成功发送 json 响应(如果它已被占用)并添加输入的 css 样式,我还需要阻止提交并添加一些消息。
这是我的 checkemail 操作(使用这篇文章 - http://paydrotalks.com/posts/45-standard-json-response-for-rails-and-jquery):
def checkemail
if !User.where('email = ?', params[:email]).empty?
format.jsonr do
render :json => {
:status => :ok,
:message => "Success!",
}.to_json
end
end
end
在我的路线中:
checkemail GET /checkemail(.:format)
match "/checkemail", to: 'edit_user#checkemail'
还有我的 jQuery:
$('#user_email').focusout(function() {
$.getJSON('/checkemail', { email: $('#user_email').val() }, function(data) {
$('#user_email').addClass("error");
});
});
我的 HTML 输入代码:
<input id="user_email" name="user[email]" size="30" type="email" value="">
来自 mime_type 初始化文件:
Mime::Type.register_alias "application/json", :jsonr, %w( text/x-json )
来自 Fiddler:
Request : GET /checkemail?user@mail.com HTTP/2.0
Response(RAW tab) :
Missing template edit_user/checkemail
JSON tab is empty
问题:如何检查是否发送了 json 请求?如何防止提交表单并添加一些消息?
【问题讨论】:
-
@KyorCode,我不太擅长。我怎样才能在那里添加红宝石动作?
-
我假设您在本地主机上运行,使用“composer”来定位您的地址并相应地更改您的标题、操作类型(GET、POST、PUT)和正文,有足够的例子在那里。在你我认为的情况下:localhost/checkemail
-
@KyorCode,你是指 Fiddler 还是 jsfiddler ?我以前从未使用过提琴手。
-
Fiddler,是时候试验一下了。调试 web 服务端点功能非常方便
-
@KyorCode,他们的视频是有用的还是最好找例子?
标签: jquery ruby-on-rails json response