小编Ada*_*ich的帖子

在网站上混淆电子邮件地址的最佳方法?

过去几天我一直在努力更新我的个人网站.我的个人网站的URL是(我的名字).(我的姓).com,因为我的姓氏很不寻常,我很幸运能够拿起域名.我的电子邮件地址是(我的名字)@(我的姓).com.所以真的,当它归结为猜测时,它并不是很难.

无论如何,我想将mailto:链接集成到我的网站,以便人们可以联系我.而且,尽管我的电子邮件地址不是很难猜测,但我宁愿不让垃圾邮件机器人收集它,只是抓取网站的电子邮件地址模式并将它们添加到他们的数据库中.

我最好的方法是混淆我的电子邮件地址,最好是链接形式?我所知道的方法是:

<a href="mailto:x@y.com">e-mail me</a>
Run Code Online (Sandbox Code Playgroud)

它有效,但这也意味着,一旦我的网站访问谷歌,我将趟垃圾邮件,因为垃圾邮件机器人很容易选择我的电子邮件地址.

<img src="images/e-mail.png" />
Run Code Online (Sandbox Code Playgroud)

这是不太理想的,因为访客不仅无法点击它向我发送电子邮件,而且更聪明的垃圾邮件机器人可能能够检测到图像包含的字符.

我知道可能没有完美的解决方案,但我只是想知道每个人都认为最好的.我绝对愿意在必要时使用JavaScript,因为我的网站已经使用了大量的JavaScript.

html javascript email obfuscation

130
推荐指数
13
解决办法
8万
查看次数

Scaffolding ActiveRecord:两列相同的数据类型

另一个基本的Rails问题:

我有一个数据库表,需要包含对特定数据类型的两个不同记录的引用.

假设的例子:我正在制作视频游戏数据库.我有一张"公司"表.我希望每个"Videogame"条目只有一个开发人员和一个发布者.

我知道,如果我想拥有一家公司,我可以做以下事情:

script/generate Videogame company:references
Run Code Online (Sandbox Code Playgroud)

但我需要两家公司.我宁愿不使用连接表,因为只能有两个给定的数据类型,我需要它们是不同的.

似乎答案应该非常明显,但我无法在互联网上的任何地方找到它.

ruby activerecord ruby-on-rails scaffolding

23
推荐指数
2
解决办法
1万
查看次数

Rails:单击下拉选项时提交(通过AJAX)

选择下拉框选项时,自动提交AJAX表单的最简单,最优雅的方法是什么?我正在创建一个管理页面,管理员可以在其中修改用户权限("权限"存储为整数),我希望"权限"字段是一个下拉框,当管理员自动提交和更新时点击他希望用户拥有的选项.

这是我目前正在看的精简版.我需要知道将其转换为远程表单的最佳方法,该表单在单击选项时自动提交.

随意指出任何切向性的建议或其他任何东西......我对Rails相对较新,只是在我不能不经常引用他人工作的情况下才能编写代码.

<!-- This is the "index" view, by the way. -->
<% for membership in @story.memberships %>
  <% form_for membership do |f| %>
    <%= f.select :permissions, [['none', 0], ['admin', 9]] %>
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

ajax ruby-on-rails remote-forms ajax-forms

12
推荐指数
1
解决办法
1万
查看次数

自引用的问题has_many:通过Rails中的关联

我正在阅读有关自我参照has_many:通过今天的数据情况,因为我正在尝试构建一个使用它们的Rails应用程序.我在互联网上发现了这个例子,我对此有疑问.让我在这个人的博客上发布这个示例代码:

create_table :animals do |t|
  t.string :species
end
create_table :hunts do |t|
  t.integer :predator_id
  t.integer :prey_id
  t.integer :capture_percent
end

class Animal < ActiveRecord::Base
  has_many :pursuits,  :foreign_key => 'predator_id',
                       :class_name => 'Hunt',
                       :dependent => :destroy
  has_many :preys,     :through => :pursuits
  has_many :escapes,   :foreign_key => 'prey_id',
                       :class_name => 'Hunt',
                       :dependent => :destroy
  has_many :predators, :through => :escapes
end
class Hunt < ActiveRecord::Base
  belongs_to :predator, :class_name => "Animal"
  belongs_to :prey,     :class_name => "Animal"
end
Run Code Online (Sandbox Code Playgroud)

假设我正在构建一个列出其数据库中第一个动物的网页.此标题下方是百分比列表(capture_percent).每个百分比指的是这个页面的动物狩猎的动物,但它不会告诉你动物的名字,只是百分比.单击任何给定的百分比将转到相应的动物页面.

我知道,这是一个难以解决的问题,但我正在努力解决这个问题.我是否必须为CapturePercent创建一个单独的表?

ruby activerecord ruby-on-rails associations

10
推荐指数
1
解决办法
2805
查看次数

在XNA中缩放整个屏幕

使用XNA,我正在尝试创建一个冒险游戏引擎,让你制作看起来像90年代初期的游戏,比如触手之日Sam&Max Hit the Road.因此,我希望游戏实际上以320x240运行(我知道,它应该是320x200,但是嘘),但它应该根据用户设置进行扩展.

它的工作原理样的好现在,但我遇到了一些问题,我其实希望它看起来更加像素化,它目前不会.

这就是我现在正在做的事情:

在游戏初始化中:

    public Game() {
        graphics = new GraphicsDeviceManager(this);
        graphics.PreferredBackBufferWidth = 640;
        graphics.PreferredBackBufferHeight = 480;
        graphics.PreferMultiSampling = false;

        Scale = graphics.PreferredBackBufferWidth / 320;
    }
Run Code Online (Sandbox Code Playgroud)

Scale是一个公共静态变量,我可以随时检查以查看相对于320x240我应该扩展多少游戏.

在我的绘图功能:

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.Default, RasterizerState.CullNone, null, Matrix.CreateScale(Game.Scale));
Run Code Online (Sandbox Code Playgroud)

这样,一切都以320x240绘制并且被炸毁以适应当前分辨率(默认为640x480).当然,我做数学将鼠标的实际坐标转换为320x240坐标,依此类推.

现在,这是伟大的,但现在我已经到了我想要开始缩放我的精灵,让他们走到远处等等的地步.

看下面的图片.左上角的图像是游戏以640x480运行时的截图.它右边的图像是"应该"看的样子,在320x240.最下面的一排图像只是吹到300%的顶行(在Photoshop中,不在引擎中),所以你可以看到我在说什么.

图像显示分辨率变化时缩放的差异

在640x480图像中,您可以看到不同的"线条粗细"; 较粗的线是它应该看起来的样子(一个像素= 2x2,因为它运行在640x480),但是由于缩放,较细的线条(1x1像素)也会出现,当它们不应该时(参见右边的图像) ).

基本上我试图模拟一个320x240的显示器,但是使用XNA会升级到任何分辨率,并且矩阵变换不能解决问题.我有什么办法可以做到这一点吗?

xna resolution-independence xna-4.0

9
推荐指数
1
解决办法
6734
查看次数

Rails:在修改数据库之前修改表单参数

我正在开发一个通过表单发送数据的Rails应用程序.我想修改某些形式的"参数"的形式发送,但之前对其进行处理.

我现在有什么

{"commit"=>"Create",
  "authenticity_token"=>"0000000000000000000000000"
  "page"=>{
    "body"=>"TEST",
    "link_attributes"=>[
      {"action"=>"Foo"},
      {"action"=>"Bar"},
      {"action"=>"Test"},
      {"action"=>"Blah"}
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是

{"commit"=>"Create",
  "authenticity_token"=>"0000000000000000000000000"
  "page"=>{
    "body"=>"TEST",
    "link_attributes"=>[
      {"action"=>"Foo",
       "source_id"=>1},
      {"action"=>"Bar",
       "source_id"=>1},
      {"action"=>"Test",
       "source_id"=>1},
      {"action"=>"Blah",
       "source_id"=>1},
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

这可行吗?基本上,我试图一次提交两种类型的数据("页面"和"链接"),并将"链接"的"source_id"分配给"页面"的"id".

ruby activerecord ruby-on-rails

8
推荐指数
2
解决办法
9338
查看次数

如何为Windows编译尽可能小的V8库?

我正在为学校制作游戏引擎,我想使用谷歌的V8来允许在引擎中使用JavaScript脚本.该引擎是使用Visual Studio 2013编写的,并且由于最终游戏不得超过50MB,因此我希望尽可能减小V8文件大小的影响.

通过互联网了解如何使用V8进行操作,我遇到了一系列关于V8的教程,其中包含一个针对V8的预编译.lib文件.但是,它已经四岁了.我假设自己构建一个更新的版本会提高性能并添加功能,所以我昨天花了很多时间来讨论V8构建过程,并最终找到了如何为Visual Studio编译V8:

  1. 安装Google的"软件仓库工具"
  2. fetch v8

这为我提供了生成V8 Visual Studio解决方案所需的一切,当我编译它时,它可以工作,并生成.lib和.dll文件.但是,当我尝试创建一个测试解决方案并将这些库链接到它时,它令人难以置信的混乱.

构建过程生成以下LIB文件:

  • cctest.lib
  • gmock.lib
  • gtest.lib
  • icui18n.lib
  • icuuc.lib
  • mksnapshot.lib
  • unittest.lib
  • v8.lib
  • v8_base.lib
  • v8_libbase.lib
  • v8_libplatform.lib
  • v8_nosnapshot.lib
  • v8_snapshot.lib

以下DLL:

  • icudt.dll
  • icui18n.dll
  • icuuc.dll
  • v8.dll

在昨天的某个时刻,我包含了许多库(我认为它是v8,v8_base和v8_snapshot)并将所有DLL复制到我项目的输出目录中,并最终起作用.但是,正如我上面所说,我需要V8的文件大小影响尽可能小.我不需要i18​​n支持,所以有没有一种方法可以在没有它的情况下进行编译?就像我上面说的那样,我有一个旧版本的V8 .lib,它不需要运行DLL,它编译并且工作正常...但我错过了更新的功能和改进,因为这是四年旧?无论如何,所有这些.libs的含义是什么?我找不到任何关于哪些人做什么或类似事情的文件.

所以,是的,我想如果有人能提供指示或指向我任何有用的文件,那将是伟大的.我昨天花了差不多整天试图解决这个问题.

v8 embedded-v8 visual-studio-2013

8
推荐指数
1
解决办法
6624
查看次数

Rails 2.0:为什么不使用sqlite3?

我一直在阅读一些关于如何开始使用Rails 2.0的教程.

(超时:天才网站名称的想法来自我刚刚写的一个错字:"tutoRAILS."抱歉,回到我的问题.)

在我阅读的大多数教程中,似乎鼓励使用MySQL而不是sqlite3.有这样的理由,比如,表现方面还是其他什么?我现在只是使用InstantRails在我的电脑上测试Rails,并且他们已经足够好将MySQL包含在他们的设置中,但我一直在使用sqlite3制作我的实验应用程序.我是否遗漏了sqlite3的一些主要警告,或者这只是其他人对MySQL的一般偏好?

sqlite ruby-on-rails

7
推荐指数
1
解决办法
4523
查看次数

Rails:提交包含多个对象的表单

我正在创建一个Rails应用程序,我遇到了一些障碍.我想要一个"为DataType1创建新记录"表单,不仅为DataType1创建一个新行,而且还为DataType2插入最多四个新行.

我知道所有关于fields_for的信息,但我的问题是我需要提交最多四个DataType2,它们与DataType1的唯一连接是它们是通过DataType2中的字段引用的.

这是简化的数据库:

create_table :data_type_1 do |t|
  t.string     :title
  t.text       :body

  t.timestamps
end

create_table :data_type_2 do |t|
  t.belongs_to :parent

  t.timestamps
end
Run Code Online (Sandbox Code Playgroud)

现在,我建立了所有关系和一切; 那不是问题.问题是我似乎无法弄清楚如何使用新DataType1的参数传递DataType2s的参数.一旦有人告诉我应该怎么做,我可以设置新的DataType2s以便相当容易地与新的DataType1相关联.

这就是我目前对表格的看法:

<% form_for(@data_type_1) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </p>

  # Etc...

  <p>
    # New items need to be iterated here
    # DataType2[1]: [         ]
    # DataType2[2]: [         ]
    # DataType2[3]: [         ]
    # DataType2[4]: [         ]
    # (Note that these numbers are just examples.)
  </p>

  <p> …
Run Code Online (Sandbox Code Playgroud)

ruby sql activerecord ruby-on-rails

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

简单的Rails路由情况

我正在创建一个由故事组成的Ruby on Rails应用程序.每个故事都有多个页面.

如何设置routes.rb以便我可以拥有这样的URL:

http://mysite.com/[story id]/[page id]
Run Code Online (Sandbox Code Playgroud)

喜欢:

http://mysite.com/29/46
Run Code Online (Sandbox Code Playgroud)

目前我正在使用这种设置:

http://mysite.com/stories/29/pages/46
Run Code Online (Sandbox Code Playgroud)

使用:

ActionController::Routing::Routes.draw do |map|

  map.resources :stories, :has_many => :pages
  map.resources :pages

  map.root :controller => "stories", :action => "index"

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'

end
Run Code Online (Sandbox Code Playgroud)

提前致谢.我是Rails的新手,现在路由对我来说似乎有点复杂.

ruby-on-rails

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