我正在做一个递归的svn add/commit,并且包含了一个没有正确的ignore属性的文件夹.我现在有大约100个已上传的二进制文件版本,但我尚未提交.
在不删除所有文档的情况下,"撤消"此操作的最简单方法是什么?
我正在使用will_paginate进行分页,到目前为止一直运行良好,除了这一件事.
例如,如果我尝试对范围进行分页
class User < ActiveRecord::Base
named_scope :scope, lambda { etc }
end
User.scope.paginate({:page => params[:page], :per_page => 10})
Run Code Online (Sandbox Code Playgroud)
这将告诉我paginate是一个未定义的方法.我宁愿不仅仅为这个范围使用第二种解决方案,我能在这做些什么吗?
我在rails中有一个模型创建表单,我也通过ajax返回JSON.到目前为止我的代码看起来像:
$('#new_stem').ajaxForm({ //#new_stem is my form
dataType: 'json',
success: formSuccess
});
function formSuccess(stemObj) {
//does stuff with stemObj
}
Run Code Online (Sandbox Code Playgroud)
我有一个带有文件上传器的多部分表单(但我不确定这是否相关).
当我提交表单时它工作正常(我的模型正确创建并呈现为json),但是不是由formSuccess函数处理的json,而是提示下载"stems.json"(我的词干创建的路径)动作)在Firefox中.
会导致这种情况发生的原因,以及可以解决的问题是什么?不确定这是否是问题的一部分,但我的表单中没有提交按钮,我有一个链接,点击处理程序调用$('#new_stem).submit()
多谢你们!
编辑:Firebug告诉我标题包含以下内容:
Etag "b53e5247e7719cf6b1840e2c6e68781c"
Connection Keep-Alive
Content-Type application/json; charset=utf-8
Date Mon, 03 May 2010 02:19:31 GMT
Server WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10)
X-Runtime 241570
Content-Length 265
Cache-Control private, max-age=0, must-revalidate
Run Code Online (Sandbox Code Playgroud)
加上一个cookie标题
我目前有一个这样的表格:
<% form_for @stem, :html => {:multipart => true} do |f| %>
<%= f.file_field :sound %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这输出(基本上):
<form method="post" id="new_stem" class="new_stem" action="/stems">
<input type="file" size="30" name="stem[sound]" id="stem_sound">
</form>
Run Code Online (Sandbox Code Playgroud)
但是我打算在这里使用jQuery的ajaxForm插件,并希望以JSON格式返回新的词干.我知道如果表单的动作是"/stems.json"这会起作用,但是有一个参数可以放入form_for调用,要求它返回JSON吗?
我试过了
<% form_for @stem, :html => {:multipart => true, :action => '/stems.json'} do |f| %>
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
我正在使用paperclip来处理我的文件上传,在一种情况下我不希望文件是强制性的.但是,我想确保它存在时是特定的文件类型.
我有这个:
class TestModel < ActiveRecord::Base
#stuff
has_attached_file :sound #etc...
validates_attachment_content_type :sound, :content_type => ['audio/mp3', 'application/x-mp3']
end
Run Code Online (Sandbox Code Playgroud)
当我没有声音文件时,它告诉我它不是有效的内容类型之一.我已经尝试添加''
到:content_type
数组,这也不起作用!
我也尝试为:if
属性创建一个lambda过程,但是如果没有某种错误我就无法运行它.
这里有什么遗漏?
我想创建一个rails路由来编辑用户的个人资料.
而不是必须使用/ users /:id/edit,我想要一个像/ edit_profile的网址
是否有可能创建一个动态路由,将/ edit_profile转换为/ users/{user's id}/edit,或者我应该在控制器中做什么?
我在AS3中有一个工作的麦克风录音脚本,我已经成功地通过AMF将.wav文件保存到服务器.这些文件在任何音频播放器中都能正常播放,没有奇怪的效果.
作为参考,我正在做的是捕捉麦克风的ByteArray :(在一个名为AudioRecorder的类中)
public function startRecording():void {
_rawData = new ByteArray();
_microphone
.addEventListener(SampleDataEvent.SAMPLE_DATA,_samplesCaptured, false, 0, true);
}
private function _samplesCaptured(e:SampleDataEvent):void {
_rawData.writeBytes(e.data);
}
Run Code Online (Sandbox Code Playgroud)
这没有问题.录制完成后,我可以使用_rawData变量并通过WavWriter类等运行它.
但是,如果我使用以下代码运行同样的ByteArray作为声音我从adobe cookbook改编:(在一个名为WavPlayer的类中)
public function playSound(data:ByteArray):void {
_wavData = data;
_wavData.position = 0;
_sound.addEventListener(SampleDataEvent.SAMPLE_DATA, _playSoundHandler);
_channel = _sound.play();
_channel
.addEventListener(Event.SOUND_COMPLETE, _onPlaybackComplete, false, 0, true);
}
private function _playSoundHandler(e:SampleDataEvent):void {
if(_wavData.bytesAvailable <= 0) return;
for(var i:int = 0; i < 8192; i++) {
var sample:Number = 0;
if(_wavData.bytesAvailable > 0) sample = _wavData.readFloat();
e.data.writeFloat(sample);
}
}
Run Code Online (Sandbox Code Playgroud)
音频文件以双倍速度播放!我检查了记录比特率等等,我很确定这些都是正确的,我尝试改变缓冲区大小和我能想到的任何其他数字.它可能是单声道与立体声的东西吗?
希望我在这里很清楚,谢谢!
json ×2
ajaxform ×1
audio-player ×1
flash ×1
form-for ×1
jquery ×1
named-scope ×1
paperclip ×1
routes ×1
svn ×1
validation ×1
wav ×1