我正在开发一个应用程序,它将以不同的颜色和图像为主题,为不同的客户.虽然我可以选择在构建时使用自定义颜色重写colors.xml文件,但我倾向于在运行时设置颜色.我想知道的是,如果这是以某种方式以编程方式更改colors.xml文件中定义的颜色的值,并使该新值在布局定义中使用它的所有位置生效.
换句话说,如果我有:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color headerColor="white">#FFF</color>
<color backgroundColor="black">#000</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
和一个布局文件,如:
<TextView
android:id="@+id/listItemHeaderActivity"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="@color/headerColor"
android:background="@color/backgroundColor"
android:text="@string/listTextHeaderActivity"/>
Run Code Online (Sandbox Code Playgroud)
我可以在Java中更改和的值,headercolor并backgroundColor在所有使用这些值的视图中进行更改吗?或者,每当我显示这些视图时,我是否必须单独更改每个相关的视图颜色?
提前致谢.
我有一个名为 Category 的模型,它可以有许多子类别(也是类别记录)。我想收集数据库中没有子类别的所有类别,例如:
Category.where(subcategories: [])
Run Code Online (Sandbox Code Playgroud)
但我尝试过的每一个直观的变体都会抛出错误或返回空集。它生成了一些我不太理解的 SQL:
Category Load (0.5ms) SELECT "categories".* FROM "categories" WHERE 1=0
=> #<ActiveRecord::Relation []>
Run Code Online (Sandbox Code Playgroud)
谁能告诉我正确的方法来做到这一点?
编辑:这是定义子类别关系的方式
class Category < ActiveRecord::Base
has_many :subcategories, class_name: 'Category', foreign_key: 'parent_id'
belongs_to :parent, class_name: 'Category'
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用AWS的JavaScript SDK从Web浏览器上传文件到我的S3存储桶.我的代码看起来像这样:
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
AccountId: 'dfhgdh',
IdentityPoolId: 'fdagsd',
RoleArn: 'fdafds'
});
var bucket = new AWS.S3({params: {Bucket: 'test-bucket'}});
var pdfUpload = document.getElementById('pdf-uploads').files[0];
var params = {Key: pdfUpload.name, ContentType: pdfUpload.type, Body: pdfUpload};
bucket.putObject(params, function (error, data) {
if (error) {
console.log(error);
} else {
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,每当它到达putObject命令时,我都会从AWS收到错误:
"错误:配置中缺少凭据{message:"配置中缺少凭据",代码:"CredentialsError"......"
我敢肯定我在这里错过了一些简单而愚蠢的东西,但我无法弄清楚我的生活是什么.(当我尝试对伪秘密密钥进行硬编码时,我得到了一个不同的错误,所以我很确定它与我尝试设置认证凭证的方式有关.)
javascript amazon-s3 amazon-web-services amazon-cognito aws-sdk
我import向控制器添加了一个方法,当我从我的网站手动测试它时它工作得很好,但它在 rspec 中失败。这是我的测试的样子:
require 'spec_helper'
describe PropertiesController do
let!(:user) { FactoryGirl.create(:user) }
before :each do
sign_in user
end
describe "should upload user properties" do
before do
post :import, spreadsheet: fixture_file_upload("/files/property_upload_template.xlsx")
end
it "should have created records" do
expect(Property.count).to eq 3
# Some other assertions
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我在导入操作中添加puts语句(包括第一行)时,显然没有调用它们。除了断言失败之外,测试不会生成任何错误。同样,当我查看 test.log 文件时,所发生的只是创建我的测试用户(并且发送了一封设计确认电子邮件),但似乎并没有执行导入操作。测试服务器似乎可以很好地识别该路由,但它实际上并未执行该操作。
我的测试配置有问题吗?
amazon-s3 ×1
android ×1
aws-sdk ×1
colors ×1
javascript ×1
rspec ×1
ruby ×1
sql ×1
where-clause ×1