小编cba*_*ock的帖子

Rails中设计的单表继承4

我已经在这里,这里这里阅读了帖子,但是我仍然无法实现单表继承.

理想情况下,我希望有两个注册路径(一个用于客户端,一个用于提供者),具有公共字段名称,电子邮件,密码和confirm_password,以及提供者注册具有额外的radiobutton字段以指定提供者类型.我正在通过设计进行注册.在点击注册表单上的提交后,用户将被重定向到第二种形式,这对于客户端和提供者来说是完全不同的(我一直在使用资源的编辑页面).

按照目前的情况,如果我只是通过用户进行操作,一切正常,但只要我添加单表继承,注册表单就会告诉我他们缺少第二种表单的要求.

这是我的 config/routes.rb

Rails.application.routes.draw do
    devise_for :users, :controllers => {:sessions => "sessions"}, :skip=> :registrations
    devise_for :clients, :providers, :skip=> :sessions
    resources :clients
    resources :providers
    root :to=>'pages#home'
    match '/home', to: 'pages#home', via: 'get'
end
Run Code Online (Sandbox Code Playgroud)

我的模型如下:

用户:

class User < ActiveRecord::Base

    before_save {self.email = email.downcase}

    devise :database_authenticatable, :registerable,
        :recoverable, :rememberable, :trackable, :validatable

    validates :name, presence: true, length: {maximum: 50}
    validates :email, presence: true, :email => {:ban_disposable_email => true, :message => I18n.t('validations.errors.models.user.invalid_email')}, uniqueness: { case_sensitive: false …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails single-table-inheritance devise ruby-on-rails-4

10
推荐指数
1
解决办法
1651
查看次数

保持Wifi-Direct打开AOSP设备

我的朋友和我正在开发一个应用程序,使用wifi-direct在Android设备之间传输同步音乐.我们的问题是,虽然连接手机后应用程序工作得相当好,但需要做一些工作才能连接手机,因为在所有AOSP设备上看来wifi直接只在进入wifi直接菜单时打开(并在退出后立即关闭) ).这使得应用程序内连接相当困难.我们想知道是否有任何方法可以直接从代码打开wifi并保持开启(如果有人可以使用反射来详细描述如何使用反射这将是非常棒的).

谢谢!这是我们目前的代码:

public class Reflector {
static Method turnOnICS;
static Method turnOnJB;
static Method turnOffICS;

public static void turnOnP2P(WifiP2pManager m, Channel c) {
    //Log.v("button", "turnOnP2P");
    if (android.os.Build.VERSION.SDK_INT == 14 || android.os.Build.VERSION.SDK_INT == 15) {
        //Log.v("version", "Version is ICS");
        try {
            turnOnICS = WifiP2pManager.class.getDeclaredMethod("enableP2p",WifiP2pManager.Channel.class);
            turnOnICS.setAccessible(true);
            turnOnICS.invoke(m, c);
        } catch (NoSuchMethodException e) {
            Log.v("ics_error", "ICS enableP2p() not found");
        } catch (Exception e) {
            Log.v("ics_error", "turnOnICS invocation failure");
        }
    } else if (android.os.Build.VERSION.SDK_INT == 16 || android.os.Build.VERSION.SDK_INT == 17) {
        //Log.v("version", "Version …
Run Code Online (Sandbox Code Playgroud)

reflection android wifi android-source wifi-direct

5
推荐指数
1
解决办法
1086
查看次数