Tag: ruby

Ruby Regex用于字符串中的重复数字

如果我有一个像”123123123″这样的字符串 – 这里123重复3次。 那么我怎样才能在ruby中只获得”123″ ? 2.所以如果字符串是”12312312″ – 这里123重复2次然后只有12 ,所以这里仍然需要得到”123″ 。 3.即使字符串是99123123123 ,我仍然需要获得123 。 这可能在Ruby Regex中有用吗? 编辑:我希望这能解决Project Euler Problem 26 。 所以这里123可以是任何东西。 我想要的是提取1个至少2个重复数字。

在事务块失败后,从params哈希构建对象数组,Rails

我有一个表单,用户可以同时更新多个资源。 事务块使表单成为primefaces:如果对任何正在更新的资源进行一次validation失败,则不会更新任何资源,并且活动记录将回滚所有更改。 当事务失败时,我想再次呈现表单,显示用户输入的相同输入以及每个错误输入字段旁边的错误,这些错误阻止事务通过。 事务块工作。 我遇到的麻烦是从params日志构建对象数组。 数组的每个索引都应包含一个哈希,该哈希保存特定资源的所有属性的键/值对。 UDPATE:以下是回答代码的回答 码: def update_multiple begin User.transaction do params[:users].each do |k, v| User.find(k).update!(v) end flash[:notice] = “Update Successful” redirect_to :users and return end rescue @users = [] params[:users].each do |k,v| @users.push(User.new({:id => k}.merge(v))) end flash[:error] = “Errors found” render :edit_multiple and return end end 并且为了更好地衡量,这是传递的参数在日志中的样子。 此事务失败,因为name属性必须至少为3个字符。 Parameters: {“utf8″=>”✓”, “authenticity_token”=>”xyz=”, “users”=>{“15″=> […]

压缩目录中的所有文件

我正在使用RubyZip尝试压缩目录中的所有文件。 这是我的class级: require ‘zip/zip’ require ‘zip/zipfilesystem’ class Lesson :destroy accepts_nested_attributes_for :assets, :reject_if => lambda { |a| a[:asset_file_name].blank? } def bundle bundle_filename = “public/attachments/#{self.id}/#{self.id}.zip” Zip::ZipFile.open(bundle_filename, Zip::ZipFile::CREATE) { |zipfile| Dir.foreach(“public/attachments/#{self.id}”) do |item| zipfile.add( item, “public/attachments/”) end } File.chmod(0644, bundle_filename) self.save end end 目前,这是使用我想要的名称创建一个zipfile,但目录中的文件没有正确压缩。 它们不是作为文件压缩而是作为目录压缩。

访问其他类的变量

我在上一篇文章( rspec测试中的未定义方法 )上得到了一些很好的帮助,但我只是想寻求更多的帮助。 我有一个rspec集成规范,我基本上需要更改代码以获得所需的结果。 我不能改变规范,因为它是练习的一部分。 let(:user) { User.new(voucher) } context ‘no voucher’ do let(:voucher) { nil } it ‘should bill default price all the time’ do user.bill expect(user.orders[0].billed_for).to eql 6.95 … … end end context ‘vouchers’ do describe ‘default vouchers’ do let(:voucher) { Voucher.create(:default, credit: 15) } it ‘should not bill user if has a […]

从after_post_process或after_save获取id,bin或者bin

我已经打了一段时间了,你的帮助肯定会非常值得赞赏。 我已经建立了一个签署pdf文档的方法,你可以在这里找到,现在离签名文件只有一步之遥。 我想以异步方式执行此操作,但首先我需要了解如何同步执行此操作。 所以我尝试了两种不同的方法,post post_process: after_post_process do |receipt| if receipt.receipt_file_changed? require ‘aws-sdk’ logger.debug(“RECEIPT ID: #{self.inspect}”) file = receipt.receipt_file.queued_for_write[:original] s3=AWS::S3.new( access_key_id: S3_CONFIG[“access_key_id”], secret_access_key: S3_CONFIG[“secret_access_key”]) bucket_name = S3_CONFIG[“bucket”] b = s3.buckets[bucket_name] filen = File.basename(file.path) outputF = “original/teste.pdf” o = b.objects[outputF] o.write(file: file.path) end end 我希望能够将文件发送到类似/original/1/myfilename.pdf的路径,其中1将是我的receipt_id(并且在after post_process时为null)。 然后我尝试了与after_save不同的方法,但receipt_file.to_file(:original)不是有效的调用… after_save do |receipt| if receipt.receipt_file_changed? require ‘aws-sdk’ logger.debug(“RECEIPT ID: #{receipt.inspect}”) […]

任何与设计’1.5.3’的refinerycms兼容版本

伙计们,我不是专家只是一个初学者,我正在研究一个rails项目(rails 3.2.8)我想将炼油厂与现有项目整合,但问题是我写的是‘refinerycms’,’〜> 2.0。 8’并运行bundle更新它给出了一个错误,refinerycms依赖于设计2.0.0并且我设计了1.5.3。 我想用精炼1.5.3与炼油厂如果我选择最新的设计版本让我们说(设计2.0.0)我现有的应用程序行为改变。你可以告诉我一种方法摆脱这种情况。任何帮助都会非常高赞赏。 谢谢。

Rails ActiveRecord:如何通过超级父视图获取非重复的子记录?

我有四张名为Albums , Songs , Singers和SongSingers 。 Albums { Id, Name } Songs { Id, AlbumId, Name } Singers { Id, Name } SongSingers { Id, SongId, SingerId } 专辑有很多歌。 歌曲属于专辑。 SongSinger属于Song and Singer。 歌曲和歌手有许多SongSingers。 每首歌可能有相同或不同的歌手。 在View中,如何通过AlbumId获取所有非重复的歌手。 谢谢。

基于排序值数组对哈希数组进行排序

我有一系列哈希,如下所示: user_quizzes = [{:id => 3897, :quiz_id => 1793, :user_id => 252}, {:id => 3897, :quiz_id => 1793, :user_id => 475}, {:id => 3897, :quiz_id => 1793, :user_id => 880}, {:id => 3897, :quiz_id => 1793, :user_id => 881}, {:id => 3897, :quiz_id => 1793, :user_id => 882}, {:id => 3897, :quiz_id => 1793, :user_id […]

如何仅在返回> 0时显示link_to帮助程序

我有这个帮助链接 link_to “”, product_path(product, anchor: “disqus_thread”), data: { “disqus-identifier” => “#{url_for([product, {only_path: false}])}” }, class: “no-underline bold grey-text text-darken-3 margin-left” layout:application.rb %script{id: “dsq-count-scr”, src: “https://url.disqus.com/count.js”, async: “async”} _disqus.html.erb var disqus_shortname = ‘yourname’; var disqus_identifier = ”; var disqus_title = ”; var disqus_url = ”; (function() { // DON’T EDIT BELOW THIS LINE var d = […]

如何将优惠券应用于条带客户

我找不到任何方式将优惠券/折扣应用于具有重复付款的现有客户。 我正在使用stripegem。 我继续在条纹仪表板上创建优惠券。 我没有看到如何在他们的API页面上添加优惠券。 我在下面尝试过这个解决方案,但无济于事。 cu = Stripe::Customer.retrieve(“cus_XXX”) cu.discount = “my_coupon_id” cu.save # returns Stripe::InvalidRequestError: (Status 400) Received unknown parameter: discount 必须有某种我缺少的方法。 我错过了解决这个问题的方法。