枚举属性很棒,我想使用它们.但是将枚举值映射到整数将使得难以维护代码和数据库.此外,我的数据库将与我的代码高度耦合,我认为我应该认为这是一件坏事.
我知道我可以使用哈希来组织具有键/值对的枚举属性,但是仍然能够使用数组并映射到数据库中的字符串值会更好.
有没有办法默认将枚举映射到字符串?
我在Rails 3.2中使用了strong_parameters gem.为了测试图像上传过程,我有一个带参数的传入请求:
{"photo"=>{"image"=>#<Rack::Test::UploadedFile:0x000000069ce1f8 @content_type="image/png", @original_filename="test.png", @tempfile=#<Tempfile:/tmp/test.png20130420-9529-1xuka4v-1>>, "status"=>"approved", "in_use"=>false}, "controller"=>"member/photos", "action"=>"create"}
Run Code Online (Sandbox Code Playgroud)
如何允许图像属性进行分配?我试过了;
params.require(:photo).permit(:image)
Run Code Online (Sandbox Code Playgroud)
但它不起作用并说Validation failed: Image can't be blank
.
当我允许所有参数时params.require(:photo).permit!
它工作正常.
这是常见命名空间的样子.
namespace :admin do
resources :posts
end
Run Code Online (Sandbox Code Playgroud)
它创建了一个像这样的命名路线;
new_admin_post_path
Run Code Online (Sandbox Code Playgroud)
这是我的问题; 如何在命名空间下的命名路由中添加前缀(如本例中的"new")?
让我们说我的路线定义喜欢这个;
namespace :admin do
get 'post/new' => 'posts#new', as: 'post'
end
Run Code Online (Sandbox Code Playgroud)
它创造了一条命名路线,如;
admin_post_path
Run Code Online (Sandbox Code Playgroud)
我想为这个命名的路由添加"new"前缀并使其看起来像new_admin_post_path
我不想使用resources
.
我想创建一个泛型类型,它仅从类定义中选择修饰方法。
function test(ctor: any, methodName: any) {}
class A {
@test
public x() {}
public y() {}
}
type DecoratedOnly<T> = {
[P in keyof T]: T[P] extends /* Magic Happens */ ? T[P] : never;
};
let a: DecoratedOnly<A> = {} as any;
a.x(); // ok
a.y(); // never!
Run Code Online (Sandbox Code Playgroud)
是否可以推断类的装饰方法,以便DecoratedOnly
泛型类型保持装饰x()
方法不变并省略非装饰y()
方法?
我有一个迁移用于创建一个包含大约15个字段的表,并且所有字段都不应为null.我想知道是否有任何技巧可以立即做到这一点,而不是:null => false
为每一个字段声明.