小编Rab*_*ott的帖子

数组合并(联盟)

我有两个我需要合并的数组,使用Union(|)运算符是PAINFULLY慢..有没有其他方法来完成数组合并?

此外,数组中充满了对象,而不是字符串.

数组中对象的示例

#<Article 
 id: 1, 
 xml_document_id: 1, 
 source: "<article><domain>events.waikato.ac</domain><excerpt...", 
 created_at: "2010-02-11 01:32:46", 
 updated_at: "2010-02-11 01:41:28"
>
Run Code Online (Sandbox Code Playgroud)

source是一小段XML.

编辑

抱歉! 通过'merge'我的意思是我不需要插入重复项.

A => [1, 2, 3, 4, 5]
B => [3, 4, 5, 6, 7]
A.magic_merge(B) #=> [1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)

理解整数实际上是Article对象,而Union运算符似乎永远占用

ruby arrays ruby-on-rails

35
推荐指数
2
解决办法
5万
查看次数

分解PHP分页链接

我有以下方法为PHP中的分页链接创建并返回标记.

public function getPaginationLinks($options) {
    if($options['total_pages'] > 1) {
        $markup = '<div class="pagination">';

        if($options['page'] > 1) {
            $markup .= '<a href="?page=' . ($options['page'] - 1) . ((isset($options['order_by'])) ? "&sort=" . $options['order_by'] : "") . '">< prev</a>';
        }       

        for($i = 1; $i <= $options['total_pages']; $i++) {

            if($options['page'] != $i) {
                $markup .= '<a href="?page='. $i . ((isset($options['order_by'])) ? "&sort=" . $options['order_by'] : "") . '">' . $i . '</a>';
            }
            else {
                $markup .= '<span class="current">' . $i . '</span>';
            } …
Run Code Online (Sandbox Code Playgroud)

php pagination

7
推荐指数
1
解决办法
1677
查看次数

使用ONE表单的Rails STI

我有一个表单,允许我将不同格式的文件添加到流.因此,流由许多文件组成,这些文件是XML文件,但基本上有不同的模式.我有一个表单允许用户添加他们想要的任何文件,我正在使用STI(当数据已经在表中时效果很好),我的麻烦是将数据添加到表中.

表单有1个输入字段,只有一个file_field,允许用户选择要上传的文件.由于我只有一个表单,我无法实例化正确的对象,我必须以编程方式进行...而且我不知道该怎么做.

我只是(或者我可以)添加可能类型的下拉列表,并调用该字段'type',以便在提交表单时,rails将实例化对象的写入类型,因为提供了type属性?

这是什么最好的做法..我正在运行rails 2.3.4.

polymorphism ruby-on-rails single-table-inheritance

6
推荐指数
1
解决办法
3015
查看次数

Rails accepts_nested_attributes_for 回调

我有两个模型TicketTicketComment,TicketComment 是 Ticket 的孩子。

票证.rb

class Ticket < ActiveRecord::Base
  has_many :ticket_comments, :dependent => :destroy, :order => 'created_at DESC'

  # allow the ticket comments to be created from within a ticket form
  accepts_nested_attributes_for :ticket_comments, :reject_if => proc { |attributes| attributes['comment'].blank? }
end
Run Code Online (Sandbox Code Playgroud)

ticket_comment.rb

class TicketComment < ActiveRecord::Base
  belongs_to :ticket

  validates_presence_of :comment
end
Run Code Online (Sandbox Code Playgroud)

我想要做的是模仿 Trac 中的功能,如果用户更改票证和/或添加评论,则会向分配给票证的人员发送电子邮件。

我想使用 after_update 或 after_save 回调,以便我知道在发送电子邮件之前信息已全部保存。

如何检测模型的更改 (ticket.changes) 以及是否创建了新评论 (ticket.comments) 并在一封电子邮件中发送此更新(x 更改为 y,用户添加的评论“文本”)回调方法?

ruby-on-rails callback nested-class

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

使用belongs_to进行Rails对象继承

我在Report和Chart之间有一个简单的has_many/belongs_to关系.我遇到的问题是我的图表模型是有孩子的父母.

所以在我的报告模型中我有

class Report < ActiveRecord::Base
  has_many :charts
end
Run Code Online (Sandbox Code Playgroud)

我的图表模型是父模型,其中Pie,Line,Bar都继承自Chart.我不确定belongs_to:报告在图表模型中的位置,或图表模型的子项.我尝试访问chart.report时遇到错误,因为该对象的类型为"Class"

未定义的局部变量或方法`report'for#<Class:0x104974b90>

图表模型使用STI,因此它从图表表格中的chart_type列中拉出"性别"..我缺少什么?

编辑

      Chart
      /  \
    Pie  Line
    / \
   /   \
Gender Sex
Run Code Online (Sandbox Code Playgroud)

我(使用STI)实例化一个Gender或Sex类型的对象.希望这会有所帮助.

我有一种感觉,它的原因

@chart.update_attributes(params[:chart])
Run Code Online (Sandbox Code Playgroud)

因为当提交它的实际参数[:chart]其params [:gender]或params [:sex]

inheritance ruby-on-rails single-table-inheritance

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

Rails 确定来自 accepts_nested_attributes_for 对象的对象是否已更改?

我知道 rails 的基本脏指示符方法,如果对象的直接属性发生更改,这些方法会起作用,我想知道如何确定我的孩子是否已更新..

我有一个文件集合的表格,我们称之为文件夹。一个文件夹 accepts_nested_attributes_for :files。我需要确定(在控制器操作中)是 params 哈希中的文件是否与 db中的文件不同。那么,用户是否删除了其中一个文件,他们是否添加了new file,或两者(删除一个文件,然后添加另一个)

我需要确定这一点,因为如果用户删除了一个文件,而不是添加一个新文件,或者只是更新了文件夹的属性,我需要将用户重定向到不同的操作。

ruby-on-rails

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

可以访问Rails模型的Ruby脚本

我在哪里以及如何运行使用rails环境的简单脚本.具体来说,我有一列包含多条信息,我现在为每条信息添加了列,需要运行一个ruby脚本,可以运行以调用数据库每一行的方法来推断数据并将其保存到新专栏.

scripting ruby-on-rails

5
推荐指数
3
解决办法
5802
查看次数

当没有帐户存在时,Android身份验证器启动登录屏幕

我已经构建了一个Authenticator,我已经构建了一个SyncAdapter(两者都可以通过模拟器上的设置手动执行).

如果没有找到帐户,如何在应用程序启动时让我的应用程序启动登录屏幕(addAccount方法)?

这是我的Manifest.xml ...

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lateral.myapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14"/>

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
    <uses-permission android:name="android.permission.USE_CREDENTIALS"/>    
    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".myappApplication">
        <activity android:name=".ui.EventListActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <service android:name=".authenticator.AccountAuthenticatorService" android:exported="true" android:process=":auth">
            <intent-filter>
                <action android:name="android.accounts.AccountAuthenticator"/>
            </intent-filter>
            <meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator"/>
        </service>

        <service android:name="sync.EventsSyncAdapterService" android:exported="true" android:process=":events">
            <intent-filter>
                <action android:name="android.content.SyncAdapter" />
            </intent-filter>
            <meta-data android:name="android.content.SyncAdapter" android:resource="@xml/sync_events" />
        </service>

        <activity android:excludeFromRecents="true" android:name=".authenticator.myappAuthenticatorActivity">
            <!--
                No intent-filter …
Run Code Online (Sandbox Code Playgroud)

android android-syncadapter android-authenticator

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

Android自定义相机质量

我为自定义相机使用以下参数

mCamera = getCameraInstance();

params = mCamera.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
params.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);
params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
params.setExposureCompensation(0);
params.setPictureFormat(ImageFormat.JPEG);
params.setJpegQuality(100);
params.setRotation(90);

List<Size> sizes = params.getSupportedPictureSizes();
Camera.Size size = sizes.get(0);
params.setPictureSize(size.width, size.height);

mCamera.setParameters(params);
Run Code Online (Sandbox Code Playgroud)

拍完照片后,图像质量非常糟糕.我使用自动对焦和闪光灯.

这是拍摄照片的方法..

mCamera.autoFocus(new Camera.AutoFocusCallback() {
    ShutterCallback shutterCallback = new ShutterCallback() {

        @Override
        public void onShutter() {
            AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            mgr.playSoundEffect(AudioManager.FLAG_PLAY_SOUND);
        }
    };

    PictureCallback pictureCallback = new PictureCallback() {

        @Override
        public void onPictureTaken(byte[] data,
                Camera camera) {
            ...
        }
    };

    public void onAutoFocus(boolean success, Camera camera) {
        mCamera.takePicture(shutterCallback,
                null, null, pictureCallback);
    }
}); …
Run Code Online (Sandbox Code Playgroud)

android android-camera

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

Javascript REGEX

我需要一个javascript REGEX来检查字符串的长度是9个字符.以"A"或"a"开头,后跟8位数字.

Axxxxxxxx 要么 axxxxxxxx

javascript regex

4
推荐指数
1
解决办法
235
查看次数

在ruby中对嵌套哈希进行排序

提供以下ruby哈希:

{
    cat: {
        1: 2,
        2: 10,
        3: 11,
        4: 1
    },
    wings: {
        1: 3,
        2: 5,
        3: 7,
        4: 7
    },
    grimace: {
        1: 4,
        2: 5,
        3: 5,
        4: 1
    },
    stubborn: {
        1: 5,
        2: 3,
        3: 7,
        4: 5
    }
}
Run Code Online (Sandbox Code Playgroud)

如何通过除"4"之外的'leaf'之和对哈希进行排序,例如"cat"的比较值为(2 + 10 + 11)= 23,"wings"的值为(3) + 5 + 7)= 15所以,如果我只是比较那两个,那么它们将是正确的顺序,最高的总和.

可以安全地假设它总是{1:value,2:value,3:value,4:value},因为它们是我定义的常量的关键.

也可以安全地假设我只想排除键"4",并始终使用键"1","2"和"3"

根据乔丹的建议,我得到了这个工作:

  tag_hash = tag_hash.sort_by do |h| 
    h[1].inject(0) do |sum, n| 
      n[0] == 4 ? sum : sum + (n[1] || …
Run Code Online (Sandbox Code Playgroud)

ruby sorting inject

3
推荐指数
1
解决办法
1808
查看次数

Android的Appout登出

我在共享首选项上使用了contentprovider和3个变量,我想知道如何最好地"记录用户"..

我希望它截断db,并清除/删除共享的prefs变量..

目前我正在清除共享的首选项,并删除数据库,然后将用户带回登录屏幕.

SharedPreferences app_preferences = PreferenceManager
        .getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = app_preferences.edit();

// wipe user specific data
editor.remove("authenticated_user_id");
editor.remove("api_key");
editor.remove("last_sync_updates");

editor.commit();

// TODO possibly truncate rather than delete
// the apps database
getApplicationContext().deleteDatabase(
        DatabaseConstants.DATABASE_NAME);

// send the user to the login screen
Intent logoutIntent = new Intent(this, SplashActivity.class);
startActivity(logoutIntent);
Run Code Online (Sandbox Code Playgroud)

但它似乎没有清除数据库,并且在注销后第一个事务中随机获得数据库访问错误.

这通常是怎么做的?

sqlite android

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