如何使用Modals显示不同的post

我是RoR的新手,我最近遇到了一个问题,因为我试图以不同的模态显示不同的post。 为了上下文化,我有一个主页,每个post都会显示。 每个post都包含作者,内容,类似按钮和评论按钮。 我希望评论按钮打开一个模式,再次包含作者的姓名,内容和评论post的区域。 问题是我点击的每个模态包含相同的作者和相同的内容,即使我点击的评论按钮来自不同的post。 准确地说,模态中显示的内容来自最近发布的post。 告诉我你是否需要特别的东西,我很乐意用你要问我的代码编辑这篇文章。 显示post: Submitted ago Like Comment 这是我的模态: × Write your comment: Like Comment 这是我的JS脚本: $(document).ready(function(){ $(‘[data-toggle=”popover”]’).popover(); $(‘[data-toggle=”popover”]’).popover({ html : true}); }); $(‘#popover’).popover({ html : true, title: function() { return $(“#popover-head”).html(); }, content: function() { return $(“#popover-content”).html(); } });

Ruby中是否有一种方法可以打印出Object的公共方法

…不包括通用Object的所有公共方法? 我的意思是,除了做数组减法。 我只是想快速回顾一下对象有时可以使用的内容,而无需访问文档。

访问哈希和数组Ruby

在我的Rails应用程序中,我发送了一个需要解码的复杂JSON字符串。 这不是我知道的问题。 在我实现所有内容之前,我正在尝试访问一些示例JSON结构,以查看是否可以获取所有变量。 问题是名称可以是变量。 {“configurations” : [ { “drinks” : [ {“menus” : [ { “hot” : [ {“id”:15,”unit”:”0.33″, “price”:”1″, “currency”:”Euro”, “position”: 4}, {“id”:15,”unit”:”0.33″, “price”:”1″, “currency”:”Euro”, “position”: 6} ] }, { “cold” : [ {“id”:15,”unit”:”0.33″, “price”:”1″, “currency”:”Euro”, “position”: 4}, {“id”:15,”unit”:”0.33″, “price”:”1″, “currency”:”Euro”, “position”: 6} ] }, { “terminals” : [ {“id” : 4}, {“id”: 6}, […]

ActionMailer响应“501 5.5.4无效参数”

我正在使用Ruby 2.0.0上的Rails 4开发应用程序。 应用程序在Devise中注册后发送电子邮件。 这是发送电子邮件的代码: 应用程序/模型/ sponsor.rb: after_create :send_email_to_admin private def send_email_to_admin AdminMailer.new_sponsor_email(self).deliver end 应用程序/邮寄者/ admin_mailer.rb class AdminMailer < ActionMailer::Base default to: '**removed**' def new_sponsor_email(sponsor) @sponsor = sponsor p @sponsor mail(subject: "New Sponsor Registration") end end 这是从日志文件生成的电子邮件: Sent mail to **removed** (725.5ms) Date: Mon, 02 Sep 2013 15:01:03 -0400 From: **removed** To: **removed** Message-ID: Subject: […]

为什么Parslet(在Ruby中)在解析空字符串文字时会返回一个空数组?

我正在玩小册子。 这是一个简单的解析器,它向我展示了一些非显而易见的行为。 require ‘parslet’ class Parser > term >> quote end rule(:string) { quoted( (escape_char >> any | quote.absent? >> any).repeat.as(:string) ) } end 显然,它应该解析双重字符串。 确实如此。 但是以下结果对我来说似乎很奇怪。 Parser.new.string.parse ‘””‘ 此代码返回{:string=>[]} 。 为什么在那里empty array而不是empty string ? 我错过了什么? 我正在使用ruby 2.1.1和parslet 1.6.1

纸张跟踪手动版本控制无法按预期工作

我正在使用paper_trail gem。 我的用例涉及在我明确想要而不是像on: [:update]类的回调时创建版本。 我这样做是在我的my_model.rb添加on: []并在我的模型实例上使用paper_trail.touch_with_version 。 问题是每当我第一次使用nil属性保存版本时这样做。 很奇怪,下次调用paper_trail.touch_with_version ,它会正确地保存它,并正确初始化所有属性。 来自rails控制台的示例日志: document = Document.first # document.paper_trail.touch_with_version document.versions.last.reify.name => nil document.paper_trail.touch_with_version document.versions.last.reify.name => “Sample document” 真正奇怪的是,如果我尝试使用document.paper_trail.touch_with_version后跟document.versions.last.reify.name我正确获取document.versions.last.reify.name名称,但是如果我退出控制台并在第一次保存对象的属性时重复此过程那个版本再次nil 。 我可能正在做一些显而易见的事情,但在wiki上找不到任何关于此问题的内容。 有人可以向我解释我搞砸了哪里? 更新:我追溯了paper_trail库中的代码,找到了问题所在。 我在record_trail.rb找到了exception: # @api private def attribute_in_previous_version(attr_name) if @in_after_callback && RAILS_GTE_5_1 @record.attribute_before_last_save(attr_name.to_s) else @record.attribute_was(attr_name.to_s) end end 所以在控制台中, @record.attribute_before_last_save(attr_name.to_s)给我nil但是如果我在我的控制台中尝试@record.attribute_was(‘name’) ,它会给我正确的记录属性(在本例中为name)。

散列迭代不返回子目录内容

我有一个方法,查找给定父目录的子目录。 我将父目录存储在哈希中,然后将哈希作为参数传递。 我正在尝试将子目录的内容收集到一个数组中,然后将其输出到报表中。 我遇到的问题是,数组的内容只是将目录存储在哈希的最后一个值中,我很快意识到内容被循环的每次迭代都被覆盖,所以我创建了一个新的数组来存储内容到每次迭代后。 在我的更改之前,我看到子目录正常输出。 这是我的代码示例: # stores subdirectory contents into an array def store_directories(directories, folder_to_exclude) # changes working directory to the directory variable subdir_list = nil directories.each_value do |value| directory = “#{value}” puts Time.now.to_s + ” > ” + “Updating search directory…” Dir.chdir(directory) # outputs only subdirectories with a creation date of older than […]

Watir帮助:click-no-wait和execute_script无法按预期工作

使用ruby的Watir gem,我试图点击一个打开javascript弹出窗口的按钮,然后点击弹出窗口上的’ok’,我似乎无法做到这一点。 按钮位于框架中的框架中。 我已经广泛搜索并阅读有关javascript弹出窗口的Watir wiki条目但没有任何效果。 我认为这是因为execute_script和click_no_wait没有按预期工作。 例如,以下命令: @browser.execute_script(‘window.alert = function() {}’) @browser.execute_script(‘alert(“hello”)’) 创建一个javascript弹出窗口,上面写着“hello”而不是没有做任何事情的预期行为。 命令: @browser.button(:value, ‘Submit’).click 单击创建javascript弹出窗口的按钮。 然后该脚本挂起,直到我在弹出窗口中手动单击“确定”。 命令: @browser.button(:value, ‘Submit’).click_no_wait 不单击按钮(或者单击按钮并且不触发onclick事件)。 我也尝试过: Timeout::timeout(1) { @browser.button(:value, ‘Submit’).click } 和 Thread.new { @browser.button(:value, ‘Submit’).click } 但Timeout从不抛出exception,导致ruby挂起,直到我在弹出窗口中手动单击’ok’,并且当我在新线程中运行它时Watir不会单击。 有人能帮助或提供解决方案吗? 编辑:问题是在@ browser.button.click之后,脚本会挂起,直到弹出窗口关闭。 @ browser.alert.ok成功关闭弹出窗口,但单击按钮后脚本无法执行@ browser.alert.ok,因为它会一直挂起,直到弹出窗口关闭。 这个catch-22应该由click_no_wait解决,但是click_no_wait没有点击。 系统信息: Windows 7企业版64位 Internet Explorer版本9.0.12 的Watir-4.0.2-x86架构的mingw32 ruby 1.9.3p286(2012-10-12)[i386-mingw32]

rails与模块名称连接

以下是如何加入两个模型 User.where(:id => 1).joins(:posts) 但是如何使用module / namspace连接两个模型 @schedules= Swimming::Classschedule.joins(:Swimming::Slot).where(:date => @date) 似乎无法正常工作(带错误信息) :Swimming is not a class/module UPDATE 我已更新到@ schedules = Swimming :: Classschedule.joins(:swimming_slots).where(:date => @date) 而我确实有这张桌子 create_table :swimming_classschedules do |t| t.integer :slot_id t.integer :coach_id t.integer :level_id t.string :note t.timestamps end create_table :swimming_slots do |t| t.string :date t.string :start t.string :end t.timestamps end 我得到了这个错误 Association […]

在查询随机简单查询时丢失与MySQL服务器的连接

我在rails堆栈上运行ruby,我们的mysql服务器是独立的,但与我们的应用服务器位于同一站点。 (我们已经尝试将其换成不同规格的mysql服务器,但没有看到任何改进。 在工作时间,我们从没有特定查询得到一些这些。 ActiveRecord::StatementInvalid: Mysql2::Error: Lost connection to MySQL server during query 大多数失败的查询都非常简单,并且在一个查询和另一个查询之间似乎没有模式。 这一切都是从我从Rails 4.1升级到4.2时开始的。 我不知道该尝试什么。 我们的数据库服务器全天CPU不到5%。 我确实从随机交互失败的用户那里得到了错误报告,所以这不是那些已经运行了几个小时或类似的事情的查询,当然,当他们重试它完全相同的事情时。 我们的服务器由cloud66配置。 简而言之:我们的mysql服务器由于某种原因而消失,但这不是因为缺乏资源,而是当我们从这个问题开始时从另一台服务器迁移时它也是一台全新的服务器。 在有时开发function时我也会在localhost上发生这种情况,因此我不认为这是一个负载问题。 我们正在执行以下操作: ruby2.2.5 铁轨4.2.6 mysql2 0.4.8 更新:根据下面的第一个答案,我昨晚将max_connections变量增加到500,并通过show global variables like ‘max_connections’;确认增加show global variables like ‘max_connections’; 我仍然得到连接掉线,今天第一个连接只在几分钟前被删除…. ActiveRecord::StatementInvalid: Mysql2::Error: Lost connection to MySQL server during query 我select * from information_schema.processlist;运行select * from information_schema.processlist; 我有36排回来。 这是否意味着我的应用服务器当时正在运行36个连接? 或者一个过程可以是多个连接吗? […]