从中获取数据库对象的十六进制object_id表示

时间:2016-09-16 06:13:19

标签: ruby-on-rails

我有一个错误:

NoMethodError: undefined method 'some_method?' for #<Customer:0x007f8a2c5d7d80>

Customer是db支持的AR模型。 我可以通过0x007f8a2c5d7d80判断哪个客户真正知道哪个方式?

如何将其翻译成合理的内容?

2 个答案:

答案 0 :(得分:0)

好的,this thread回答了我的问题。

没有办法确定,究竟是这个对象:

  

显然,这在多次运行期间会有所不同,因为它只是   取决于系统决定分配内存的位置,而不是任何内存   对象本身的属性。

有一种很棒的方法 - ObjectSpace#_id2ref - 它允许 实际找到 对象object_id

ObjectSpace._id2ref(object_id)

答案 1 :(得分:0)

我找到了一些东西:)

public class Getquote extends AppCompatActivityimplementsNavigationView.OnNavigationItemSelectedListener{

private ProgressDialog loadDialog;

       private String Feature_id_itt;
       String category_id;
       @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_getquote2);
        inilizeToolbar();
        inilizeProgressDialog();

        final Intent int2=getIntent();
        batteryFeatureid_itt= int2.getStringExtra("battery_featuer_idc");
        category_id=int2.getStringExtra("category_id");
        Feature_id_itt=int2.getStringExtra("Feature_idc");

        final Intent int1=getIntent();
        Feature_id_itt=int1.getStringExtra("Feature_idc");
        category_id=int1.getStringExtra("Category_id");

        name_c = (EditText) findViewById(R.id.name);
        mobile_c = (EditText) findViewById(R.id.mobile);
        emailid_c = (EditText) findViewById(R.id.email_id);
        state_c = (EditText) findViewById(R.id.state);
        city_c = (EditText) findViewById(R.id.city);
        street_c = (EditText) findViewById(R.id.street);
        pin_c = (EditText) findViewById(R.id.pin);
        subject_c = (EditText) findViewById(R.id.subject);
        btsub = (Button) findViewById(R.id.bt_sub);

        btsub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                      oncheck();
             }
        });
    }
           private void oncheck() {
        if(category_id==("1")){
     Toast.makeText(Getquote.this, ""+category_id, Toast.LENGTH_SHORT).show();
            }
        else{
            Toast.makeText(Getquote.this, ""+category_id, Toast.LENGTH_SHORT).show();
            }
       }
     }

所以在十进制中,这个“werid”代码只加倍a = SomethingClass.new a # => #<SomethingClass:0x005641a0a3bed8> 0x005641a0a3bed8 #=> 94839867948760 a.object_id * 2 #=> 94839867948760