我们已经构建了一个rails应用程序,其中包含多个用户和每个用户的图像.在我们的localhost上完成所有开发工作,我们为用户和照片提供了工作种子......但是现在我们正在尝试使用S3进行图像存储,我们在...期间遇到错误...迁移步骤,执行此操作时:
rake db:migrate:reset
对这个问题道歉,但是我们已经在这个问题上持续了11个小时,经历了关于这个问题的每一个相关的Stack问题.很多类似的帖子都有NoSuchBucket错误和其他类型的问题,但我们没有提出任何建议的修改已经解决了我们的问题...也许它与我们正在使用的宝石的最新版本有关?
我们使用的是Rails 3.0.4,Ruby 1.8.7,Paperclip 2.3.8,aws-s3 0.6.2
我们使用/ migrate /文件夹中的seeds.rb文件为初始用户添加种子,为每个用户添加照片.在本地计算机上存储文件和图像(使用回形针,但不是S3)时,这始终正常工作.我们还测试了删除种子文件,只是使用工作应用程序创建一个新用户并得到了同样的错误:
凭据不是路径,文件或散列
对于用户模块,我们已经测试了通过(a)yml文件和(b)直接在用户模型中设置以下S3密钥的选项.access_key_id:'秘密'secret_access_key:'秘密'
我们已尝试从我们的localhost(尚未使用heroku)执行此操作,我们也尝试通过Heroku运行此操作.
我们似乎尝试了这些键的布局的每个排列,但我们最常得到的错误是:
无法将Module转换为Hash
谷歌搜索此错误消息返回零结果,所以我们不知道那里发生了什么.这是最令人沮丧的部分......似乎每一次尝试都让我们回到了这个错误.
我们也试过了两个:
(1)硬编码用户模型中的访问密钥,如下所示:
:access_key_id => ENV['accesskeyid'],
:secret_access_key => ENV['secretaccesskey'],
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们经常遇到这个错误:
您没有提供所需的访问密钥.请提供access_key_id和secret_access_key.
令人沮丧,因为我们总是列出两个项目,使用和不使用引号进行测试,更改订单等.
我们尝试了(a)与ENV ['accesskeyid']和(b)没有那些...简单地blahblah =>'accesskeyid'.
(2)将密钥放入yml文件中,如下所示:
has_attached_file :photo,
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => "/:photo/:filename"
Run Code Online (Sandbox Code Playgroud)
在yml文件中使用此文件:
development:
access_key_id: accesskeyid
secret_access_key: secretaccesskey
bucket: ourbucketname
production:
access_key_id: accesskeyid
secret_access_key: secretaccesskey
bucket: ourbucketname
Run Code Online (Sandbox Code Playgroud)
我们尝试使用键周围的单引号,没有.
我们还尝试在模型中定义存储桶,而不是在yml文件中定义存储桶,并得到相同的错误.
(3),这样设置:
如果Rails.env =="production"S3_CREDENTIALS = {:access_key_id => ENV ['S3_KEY'],:secret_access_key => ENV ['S3_SECRET'],:bucket =>"ourbucket"}否则S3_CREDENTIALS = Rails.root.join ("config/s3.yml")
结束has_attached_file:photo,:storage =>:s3,:styles => …
我想将grep结果赋给变量以供进一步使用:
lines=`cat abc.txt | grep "hello"`
Run Code Online (Sandbox Code Playgroud)
但我发现$ lines不再包含换行符.所以,当我这样做
echo $lines
Run Code Online (Sandbox Code Playgroud)
只打印一行.我如何保留换行符,所以当我回显$行时,它与cat abc.txt |相同 grep"你好".
想象一下,您在不同的系统上有2个实体,并且需要根据与其中一个或两个相关的信息执行某种更改其中一个或两个的事务,并且要求对这两个实体的更改都将完成,或者它们都不会.
简单的例子,基本上必须在2个独立的硬件上运行2行:
my_bank.my_account -= payment
their_bank.their_account += payment
Run Code Online (Sandbox Code Playgroud)
据推测,存在专门针对这种情况存在的算法或习语,在存在对其他尝试访问相同值的情况下正确地工作(对于某些可预测的正确定义).的两阶段提交协议似乎是一种这样的方法.是否有更简单的替代方案,可能有更多限制?(例如,也许他们要求没有系统可以完全关闭或无法响应.)或者可能有更复杂的系统在某种程度上更好?关于此事,是否有标准或备受好评的文本?
这可能是一个非常简单的问题,特别是因为我已经成功地使用QI解析了一段时间的简单结构,并且可能应该已经知道了答案,但是无论如何我都逃避了......
假设我们有一个容器,如:
struct GenderTally
{
std::vector<std::string> males;
std::vector<std::string> females;
};
Run Code Online (Sandbox Code Playgroud)
和输入文件一样
m:Steve;
f:Dora;
f:Martha;
m:Joe;
...
Run Code Online (Sandbox Code Playgroud)
对于特定类别的对象以任何顺序出现而不是所有对象都可能出现.
我将在这里跳过Fusion改编,但它将是两个字符串向量.
我的问题是,构建一个填充这样的条件容器的语法.到目前为止,我通过多次解析输入来解决这个问题,每次都使用专门的语法.在这个例子中,这将是男性和女性.
在QI mini-XML教程中,我得到的印象是自动规则会消除语义操作,但不可否认,我是一个新手,并且仍然受到像QI使用的硬核(模板)魔术API的威胁.所以,即使我知道这是糟糕的,糟糕的形式......我会非常感激在这里得到一个真实的例子,因为我在头灯堵塞时遇到了一些主要的鹿.编辑:不一定要完全适用于这个结构,只是...一个使用自动规则的语法的实际例子,并将事物放入适当的存储桶中.
我没能绑定组合框选择值.
public void InitializePage()
{
cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
}
Run Code Online (Sandbox Code Playgroud)
在我的构造函数上
public EditCourseForm(int status)
{
InitializePage();
cbStatus.SelectedText = Enum.GetName(
typeof(CourseStudentStatus), status).ToString();
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个.
cbStatus.SelectedValue = Status
但是我无法在ComboBox上设置SelectedValue.
更新 我的枚举
public enum CourseStudentStatus
{
Active = 1,
Completed = 2,
TempStopped = 3,
Stopped = 4,
}
Run Code Online (Sandbox Code Playgroud) border-right:1px solid #8fa6b9;
border-bottom:1px solid #8fa6b9;
border-left:1px solid #2b5a82;
border-top:1px solid #2b5a82;
Run Code Online (Sandbox Code Playgroud)
右边和底部一样......
我写了一个看起来像这样的函数:
- (void)changeText:(NSUInteger)arrayIndex;
Run Code Online (Sandbox Code Playgroud)
我们只是说这是Label类中的一个方法.假设我有一个Label对象数组.我把这个函数称为:
[[labels objectAtIndex:0] changeText:1];
Run Code Online (Sandbox Code Playgroud)
或者像这样:
NSUInteger index = 1;
[[labels objectAtIndex:0] changeText:index];
Run Code Online (Sandbox Code Playgroud)
为什么它会给我警告:Passing argument 1 of 'changeText:' makes pointer from integer without a cast
?代码执行正常.
*编辑*
以这些方式调用函数不会发出警告:
[[labels objectAtIndex:0] changeText:0]; //arrayIndex is 0
Label *object = [labels objectAtIndex:0];
[object changeText:1];
Run Code Online (Sandbox Code Playgroud) 除非调整图像的宽度,否则包含无效源的图像会在Firefox中显示替代文本,但不会显示在chrome中.
<img height="90" width="90"
src="http://www.google.com/intl/en_ALL/images/logos/images_logo_lg.gif"
alt="Image Not Found"/>
Run Code Online (Sandbox Code Playgroud)
如何显示图像的替代文字?