小编dch*_*cke的帖子

如何在Rails管理中显示未范围的模型?

我自己需要这个,所以这里是QA风格:

默认情况下,Rails Admin显示模型的default_scope.如何让它显示每个完全未展开的模型?

scope ruby-on-rails rails-admin

6
推荐指数
2
解决办法
2879
查看次数

php计时器只允许用户每两秒输入一次

我正在编写一个可以发布内容的网站.这适用于以下jQuery ajax:

    $.ajax({
        type: 'POST',
        url: 'action/post.php',
        data: 'posttext='+posttext+'&imageurl='+imageurl,
        success: function(feedback){
            $('#feedback').val(feedback);
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在我想知道:任何人都可以编写自己的ajax来向网站发布内容并一遍又一遍地执行此操作.我该如何防止这种情况?我确信我需要在post.php中进行某种安全检查 - 我已经听说过http referer,但是这可以修改,所以它不值得信赖.

另外我想在post.php中添加一个计时器,确保来自同一个ip地址的帖子每x秒只能发布一次,如果帖子发送到x秒以下,则会重置计时器(类似于堆栈溢出这是评论).

有谁知道如何保护ajax以及如何设置计时器?或者任何其他想法如何保护发布机制?

谢谢!

丹尼斯

php security jquery timer

5
推荐指数
1
解决办法
438
查看次数

在html中嵌套html标签

我正在构建一个人们可以发送电子邮件的平台 - 显示电子邮件的预览,我在表单下方使用div来输入邮件.

所以一般结构如下:

<html>
    <body>
         <form>
              <!-- Form to enter email here -->
         </form>
         <div>
              <!-- Email preview here -->
              <html>
                   <!-- Email content, updated everytime user types something --->
              </html>
         </div>
    </bod>
</html>
Run Code Online (Sandbox Code Playgroud)

但是,简单地使用html文档中的html标签本身似乎会混淆每个浏览器 - 而且,它看起来并不是很干净.

由于发送的电子邮件将是一个完整的html文档,因此最简单的方法是将所有内容放在div中.

我怎样才能以有效,干净的方式做到这一点?

html

5
推荐指数
2
解决办法
6241
查看次数

嵌套模型验证 - 不显示错误

关于这一点有很多问题,但它们似乎都没有帮助.是的,我看过这个导演.

我有一个有很多书的作者,如下:

作者:

class Author < ActiveRecord::Base
  attr_accessible :name
  has_many :books, dependent: :destroy

  accepts_nested_attributes_for :books, allow_destroy: true

  validates :name, presence: true
  validates :name, length: { minimum: 3 }
end
Run Code Online (Sandbox Code Playgroud)

书:

class Book < ActiveRecord::Base
  attr_accessible :name, :year
  belongs_to :author

  validates :name, :year, presence: true
  validates :year, numericality: { only_integer: true, less_than_or_equal_to: Time.now.year }
end
Run Code Online (Sandbox Code Playgroud)

我创建了以下表单,以便在作者的作者中添加一本书#show:

<%= form_for([@author, @book], html: { class: "well" }) do |f| %>
<% if @book.errors.any? %>
    <div class="alert alert-block">
        <ul>
            <% @author.errors.full_messages.each do |msg| …
Run Code Online (Sandbox Code Playgroud)

ruby validation model-view-controller ruby-on-rails nested-forms

5
推荐指数
1
解决办法
6255
查看次数

heroku的私人酒吧

我正在开发一个使用rails 3.2.12的聊天应用程序和一个名为private pub的精彩宝石,你可以在这里找到一个截屏视频.它建立在faye之上,使您可以通过推送消息轻松构建实时聊天.

现在,将它部署在heroku上实际上与私人酒吧并不那么简单.显然,您必须为faye频道设置另一个应用程序,然后从您的其他应用程序订阅该频道.

这一切都非常令人困惑.私人酒吧和faye都没有在文档中对heroku进行部署.我找到了这两个链接:

但是,我不是很了解他们,因为他们从更先进的水平开始.

你有没有人曾经在heroku上部署了一个私人pub/faye应用程序并且可以提供一步一步的指南?谢谢!

chat ruby-on-rails heroku faye private-pub

5
推荐指数
1
解决办法
2096
查看次数

Rails“本地时间”gem 未运行 JS

我正在尝试使用Basecamp 的local-timegem 。在自述文件之后,我添加了

//= require local-time
Run Code Online (Sandbox Code Playgroud)

到我的 app/assets/config/manifest.js,现在看起来像这样:

//= link_tree ../images
//= link_directory ../stylesheets .css

//= require local-time
Run Code Online (Sandbox Code Playgroud)

然后我按照规定使用宝石:

<%= local_time(comment.created_at) %>
Run Code Online (Sandbox Code Playgroud)

根据自述文件,它呈现

<%= local_time(comment.created_at) %>
Run Code Online (Sandbox Code Playgroud)

自述文件还声称 JavaScript(即客户端)会将其转换为:

<time data-format="%B %e, %Y %l:%M%P"
      data-local="time"
      datetime="2013-11-27T23:43:22Z">November 27, 2013 11:43pm</time>
Run Code Online (Sandbox Code Playgroud)

但我可以看到这不会发生在我身上。生成的标记local_time在 DOM 中保持不变。

事实上,“local”这个词在我的浏览器收到的已编译的 application.js 中出现了 0 次。

宝石可能有问题,但现在我假设我做错了什么。我的 Ruby 代码似乎可以很好地找到并使用 gem,但由于某种原因,JS 部分永远不会运行。

我究竟做错了什么?

编辑:我正在使用 Rails 版本 6.0.3.4、Ruby 版本 2.6.5p114 和本地时间版本 2.1.0。

javascript ruby ruby-on-rails localtime

5
推荐指数
1
解决办法
889
查看次数

仅选择具有相同foreign_id两次的条目

我有一个mysql InnoDB表,具有以下结构:

id
artist_id
Run Code Online (Sandbox Code Playgroud)

那里有很多条目,大多数artist_ids都在那里15次.但有些人只在那里两次.我需要得到那些.

我想出了以下内容,但无济于事:

SELECT artist_id FROM matches HAVING COUNT(artist_id)=2
Run Code Online (Sandbox Code Playgroud)

虽然有artist_ids只出现在表中两次,但它返回0行.我怎么能得到它们?

mysql select count

4
推荐指数
1
解决办法
304
查看次数

模型外键验证

我有两个模型:客户端和发票。每个客户可以拥有多张发票,每张发票只属于一个客户。如果删除客户,则与其相关的发票也应删除。

这一切都是通过以下代码完成的:

#### Invoice class
class Invoice < ActiveRecord::Base
  attr_accessible :amount, :body, :client_id, :filename, :subject

  validates :amount, :body, :client_id, :filename, :subject, :presence => true
  validates :client_id, :numericality => { :only_integer => true, :greater_than_or_equal_to => 0 }

  belongs_to :client
end

#### Client class
class Client < ActiveRecord::Base
  attr_accessible :city, :country, :name, :street, :zip

  validates :city, :country, :name, :street, :zip, :presence => true
  validates :zip, :numericality => { :only_integer => true, :greater_than_or_equal_to => 10000, :less_than_or_equal_to => 99999 }

  has_many :invoices, dependent: :destroy …
Run Code Online (Sandbox Code Playgroud)

validation model ruby-on-rails

4
推荐指数
1
解决办法
4923
查看次数

安装宝石时停止询问密码

每当我捆绑我的rails 3.2 gems时,它会询问我的密码:

输入您的密码以将捆绑的RubyGems安装到您的系统

这真的很烦人,特别是在一个项目中捆绑多次时.但是,当我将gem目录设置为全局可读时,它总是在执行任何(!)rails命令时给出警告.当然,这更令人讨厌.

我该怎么办呢?

gem ruby-on-rails bundler rvm

4
推荐指数
1
解决办法
7698
查看次数

宝石安装ruby-audio失败

我克隆了一个现有的存储库,现在正在运行bundle install- 由于某种原因,它在ruby-audio gem失败了.

Installing ruby-audio (1.6.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/thisuser/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb 
checking for sndfile.h in /opt/local/include,/usr/local/include,C:/Program Files (x86)/Mega-Nerd/libsndfile/include,C:/Program Files/Mega-Nerd/libsndfile/include... no
checking for sf_open() in -lsndfile-1... no
checking for sf_open() in -lsndfile... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include …
Run Code Online (Sandbox Code Playgroud)

rubygems ruby-on-rails

3
推荐指数
1
解决办法
1961
查看次数