我自己需要这个,所以这里是QA风格:
默认情况下,Rails Admin显示模型的default_scope.如何让它显示每个完全未展开的模型?
我正在编写一个可以发布内容的网站.这适用于以下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以及如何设置计时器?或者任何其他想法如何保护发布机制?
谢谢!
丹尼斯
我正在构建一个人们可以发送电子邮件的平台 - 显示电子邮件的预览,我在表单下方使用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中.
我怎样才能以有效,干净的方式做到这一点?
关于这一点有很多问题,但它们似乎都没有帮助.是的,我看过这个导演.
我有一个有很多书的作者,如下:
作者:
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
我正在开发一个使用rails 3.2.12的聊天应用程序和一个名为private pub的精彩宝石,你可以在这里找到一个截屏视频.它建立在faye之上,使您可以通过推送消息轻松构建实时聊天.
现在,将它部署在heroku上实际上与私人酒吧并不那么简单.显然,您必须为faye频道设置另一个应用程序,然后从您的其他应用程序订阅该频道.
这一切都非常令人困惑.私人酒吧和faye都没有在文档中对heroku进行部署.我找到了这两个链接:
但是,我不是很了解他们,因为他们从更先进的水平开始.
你有没有人曾经在heroku上部署了一个私人pub/faye应用程序并且可以提供一步一步的指南?谢谢!
我正在尝试使用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。
我有一个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行.我怎么能得到它们?
我有两个模型:客户端和发票。每个客户可以拥有多张发票,每张发票只属于一个客户。如果删除客户,则与其相关的发票也应删除。
这一切都是通过以下代码完成的:
#### 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) 每当我捆绑我的rails 3.2 gems时,它会询问我的密码:
输入您的密码以将捆绑的RubyGems安装到您的系统
这真的很烦人,特别是在一个项目中捆绑多次时.但是,当我将gem目录设置为全局可读时,它总是在执行任何(!)rails命令时给出警告.当然,这更令人讨厌.
我该怎么办呢?
我克隆了一个现有的存储库,现在正在运行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) ruby ×2
validation ×2
bundler ×1
chat ×1
count ×1
faye ×1
gem ×1
heroku ×1
html ×1
javascript ×1
jquery ×1
localtime ×1
model ×1
mysql ×1
nested-forms ×1
php ×1
private-pub ×1
rails-admin ×1
rubygems ×1
rvm ×1
scope ×1
security ×1
select ×1
timer ×1