我使用Rails 4.1和Postgresql(带PG gem)作为我的数据库.从公司到省份,我有一个非常多的联盟,有一个叫做区域的联接表.现在很明显,Regions表没有主键,因为我使用{:id => false}.但是当我尝试使用依赖破坏或只是简单地在区域对象上调用destroy时,我自己得到了这个错误:
ERROR: zero-length delimited identifier at or near """"
LINE 1: DELETE FROM "regions" WHERE "regions"."" = $1
Run Code Online (Sandbox Code Playgroud)
我知道问题是由于缺少Regions表的主键引起的.奇怪的是,如果我将主键添加回表中,则销毁工作正常并且没有错误.但是,如果我从表中删除主键,则会返回错误.我知道这与postgres有关但我不知道如何解决这个问题而不必在我的Regions表中添加主键列.
这是实际的查询
[DEBUG] [AdminUser Load (0.4ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 1 ORDER BY "admin_users"."id" ASC LIMIT 1] (pid:29655)
[DEBUG] [Province Load (0.2ms) SELECT "provinces".* FROM "provinces" WHERE "provinces"."id" = $1 LIMIT 1 [["id", 5]]] (pid:29655)
[DEBUG] [ (0.1ms) BEGIN] (pid:29655)
[DEBUG] [Region Load (0.3ms) SELECT "regions".* FROM "regions" WHERE "regions"."province_id" = $1 [["province_id", 5]]] (pid:29655) …Run Code Online (Sandbox Code Playgroud) 这是一个新手问题,但为什么我不能在 onCreate 方法之外的按钮上调用 setOnClickListener 方法?
例如,为什么我不能这样做?或者 Eclipse 只是没有在 onCreate 方法之外暗示 setOnClickListener 代码?因为什么都没有出现。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
}
Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
}
});
Run Code Online (Sandbox Code Playgroud)