如何使用class Users::SessionsController < Devise::SessionsController
respond_to :json
def create
session['user_auth'] = params[:user]
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure")
sign_in(resource_name, resource)
message = I18n.t 'devise.sessions.signed_in'
yield resource if block_given?
if request.xhr?
return render :json => {:success => true, :login => true, :data => {:message => message}}
else
respond_with resource, location: after_sign_in_path_for(resource)
end
end
def failure
user = User.where(email: session['user_auth'][:email]).first rescue nil
message = I18n.t 'devise.failure.invalid', authentication_keys: "email"
respond_to do |format|
format.json {
render :json => {:success => false, :data => {:message => message, :cause => 'invalid'} }
}
format.html {
redirect_to '/users/sign_in'
}
end
end
end
将“خلیجفارس”等波斯文写入文件?
我尝试了以下代码,但它不起作用。
std::wfstream
运行程序后文件为空。
答案 0 :(得分:5)
您可以使用C ++ 11 utf-8字符串文字和标准fstream和字符串:
#include <iostream>
#include <fstream>
int main()
{
std::fstream f("D:\\test.txt", std::ios::out);
std::string s1(u8"خلیج فارس");
f << s1;
f.close();
return 0;
}
答案 1 :(得分:2)
首先你可以离开
f << s1.c_str();
只需使用
f << s1;
要使用std::wstream
写“خلیجفارس”,您必须为波斯语区域设置imbue
,例如:
f.imbue(std::locale("fa_IR"));
在写入文件之前。