引用Rails 4.2 add_foreign_key支持:
# add a foreign key to `articles.author_id` referencing `authors.id`
add_foreign_key :articles, :authors
Run Code Online (Sandbox Code Playgroud)
如何创建一个可以为空的外键约束,允许这种情况,哪里articles.author_id可以有时为null?
ruby ruby-on-rails ruby-on-rails-4 rails-activerecord ruby-on-rails-4.2
此问题与我通过API调用的Microsoft Dynamics CRM 2015有关.
我创建联系实体:
POST [organization URI]/api/data/contacts
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"emailaddress1": "myemail@example.com",
}
Run Code Online (Sandbox Code Playgroud)
登录面板后,我看到了新的记录.我可以通过API调用它:
[organization URI]/api/data/contacts(f76e4e7c-ea61-e511-80fd-3863bb342b00)
{
"@odata.context":"[organization URI]/api/data/$metadata#contacts/$entity",
"@odata.etag":"W/\"460199\"",
...
"contactid":"f76e4e7c-ea61-e511-80fd-3863bb342b00",
"emailaddress1":"myemail@example.com",
....
}
Run Code Online (Sandbox Code Playgroud)
我想做的下一件事是添加与该联系人关联的注释记录.按照指南我打电话:
POST [organization URI]/api/data/annotations
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"notetext": "TEST",
'contact@odata.bind': 'contacts(f76e4e7c-ea61-e511-80fd-3863bb342b00)'
}
Run Code Online (Sandbox Code Playgroud)
但它返回400错误:
未声明的属性"contact",其在有效内容中仅包含属性注释,但在有效内容中未找到属性值.在OData中,只有声明的导航属性和声明的命名流可以表示为没有值的属性.
我打电话的时候:
POST [organization URI]/api/data/annotations
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"notetext": "TEST",
}
Run Code Online (Sandbox Code Playgroud)
创建了新实体,但没有与联系人的关系.
如何正确撰写此POST请求?我在这里错过了什么?我猜想,那contact@odata.bind应该呈现有些不同,我试过contactid@odata.bind,object@odata.bind,objectid@odata.bind-但没有效果.
有任何想法吗?
microsoft-dynamics dynamics-crm odata dynamics-crm-webapi microsoft-dynamics-webapi
class A
def a_method
#..
end
end
class B < A
def method_1
# ...
a_method
end
def method_2
# ...
a_method
end
# ...
def method_n
# ...
a_method
end
end
Run Code Online (Sandbox Code Playgroud)
该a_methodocassionally抛出AException.
我想从那个例外中解救,比如:
class B < A
def method_1
# ...
a_method
rescue AException => e
p e.message
end
# ...
end
Run Code Online (Sandbox Code Playgroud)
我想救同样的方式在B类(内部的各个方法method_1,method_2..., method_n).我坚持找出一个漂亮而干净的解决方案,不需要复制救援代码块.你能帮帮我吗?
Rails 5.1迁移为表的主键(changelog)生成BIGINT(而不是).Integer
是否可以在配置中的某个位置禁用它?如果是这样,如何禁用它?
在Rails 5中,可以启用/禁用缓存:
rails dev:cache
=> Development mode is now being cached.
rails dev:cache
=> Development mode is no longer being cached.
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果启用或禁用了缓存,是否有一种方法可以使应用程序从中获取信息?就像是:Rails.cache.enabled?
我知道可以检查file的存在tmp/caching-dev.txt,但是我正在寻找更高级别的东西。