我已经设置了Devise,我在user.rb文件中设置了以下代码
rails generate devise:controllers -c registrations
然后我尝试通过运行
生成注册控制器 public class MainActivity extends AppCompatActivity {
private Handler handler;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//without the Looper.getMainLooper should work too
handler = new Handler(Looper.getMainLooper());
startProcessing();
}
private void startProcessing() {
progressDialog = ProgressDialog.show(this, "Loading", "Loading data");
t.start();
}
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
log("a new client connected");
} catch (Exception e) {
Log.e("TAG", e.getLocalizedMessage());
}
}
});
public void log(final String message) {
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
});
}
}
xml can be as simple as:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
//if the above code works for you then the problem is in some other place, but not the handler or UI thread.
以及其他一些变体,但它不会生成...在Devise中创建注册控制器的正确命令是什么?
答案 0 :(得分:2)
只需手动创建控制器并使其继承自Devise。例如:
class Users::RegistrationsController < Devise::RegistrationsController
# Override the action you want here.
end
此控制器应位于app / controllers / users / registrations_controller.rb
中在你的路线中提及它。
devise_for :users, controllers: { registrations: "users/registrations" }
如果您只想通过命令生成它而不是需要从master分支添加设备gem,因为该生成器存在于该分支上。
gem 'devise', git: 'https://github.com/plataformatec/devise'
正如How to deep merge two multi-root tree structure made of array and hashes
所述答案 1 :(得分:0)
您使用的命令有错字。它应该如下所示:
rails generate devise:controllers users -c=sessions
希望有帮助。
答案 2 :(得分:0)
要生成仅供用户使用的Devise注册控制器,
rails g devise:controllers users -c=registrations
o / p:
要生成供用户使用的所有设备控制器:
rails d devise:controllers users
现在开始实际使用您生成的设计控制器,根据生成的控制器Ex修改route.rb:
进行注册
devise_for :users, controllers: {
registrations: 'users/registrations'
}
对于注册和会话,请执行以下操作:
devise_for :users, controllers: {
registrations: 'users/registrations',
sessions: 'users/sessions'
}