小编kid*_*ils的帖子

如何更改路由名称rails 4

我改变了posts#index匹配的路由,blog现在我进入/blog了我想要完成的URL.

我已经尝试了几个不同的东西来获取我的实际博客文章,其中路线目前看起来/posts/this-is-a-test也像使用blog而不是posts在URL中.
以下是我当前的路线文件.我正在使用friendly_id宝石,如果这对回答这个问题有任何不同.

resources :posts do
  resources :comments
end

  resources :contacts, only: [:new, :create]

  root "pages#home"

  get "/home", to: "pages#home", as: "home"
  get "about" => 'pages#about'
  get "pricing" => 'pages#pricing'
  get "contact_us" => 'pages#contact_us'
  match 'blog', to: 'posts#index', via: :all
end 
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-routing ruby-on-rails-4

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

处理浏览器的'ctrl + s'按键事件


我正在尝试为基于浏览器的应用程序实现CTRL+ S功能.我进行了搜索并在下面遇到了两个问题的脚本

使用JQuery捕获CTRL + S的最佳跨浏览器方法?
在Chrome中按Ctrl + S preventDefault

但是,当我尝试实现它时,它工作但是,我仍然得到默认的浏览器保存对话框/窗口.

我的代码:For shortcut.js

 shortcut.add("Ctrl+S",function() {
     alert("Hi there!");
 },
 {
     'type':'keydown',
     'propagate':false,
     'target':document
});
Run Code Online (Sandbox Code Playgroud)

jquery hotkeys.js

$(document).bind('keydown', 'ctrl+s', function(e) {
    e.preventDefault();
    alert('Ctrl+S');
    return false;
});
Run Code Online (Sandbox Code Playgroud)

我相信e.preventDefault();应该做的伎俩,但由于某种原因它不起作用.我在哪里出错.如果它很简单,仍然学习javascript.
感谢您的时间.

javascript jquery event-handling javascript-events

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

两个字符串序列中最长的公共子字符串

刚刚学习了最常见的子串算法,我对这个问题的特定变体感到好奇.它描述如下 - :

给定两个非空的字符串序列,X =(x1,x2,x3,....,x(n))和Y =(y1,y2,y3,...,y(m)),其中x (i)和y(i)是字符串,找到X中最长的字符串,它是Y 的所有字符串的子字符串.

我有一个函数substring(x, y)返回布尔值,描述x是否是y中的子串.显然,我必须连接Y中的所有字符串以形成一个大字符串,比如用B表示.我想到了以下方法 - :

  • 天真:首先连接X中的所有字符串以形成字符串A(n).应用子串(A(n),B) - 这包括在字符串A(n)中向后迭代.如果为true,则算法在此结束并返回A(n) - 或者其中包含的任何部分包含在所述子字符串中.如果没有,继续申请(A(n - 1),B)等.如果X中不存在这样的字符串,则返回空字符串.

显然,这种方法会占用相当多的运行时间,具体取决于实现方式.假设我使用迭代方法,在每次迭代时,我将不得不在该级别/索引处向后迭代String,然后应用substring().这将需要至少两个循环,O(size(B) * maxlength(x1, x2,...))最坏的情况时间,或更多取决于substring()(纠正我,如果错误).

我想到了基于后缀树/数组的第二种方法.

  • 广义后缀树:我使用O(maxlength(y1, y2,...)(?)中的Ukkonen算法构建序列Y的GST .我对后缀树木缺乏了解.我相信后缀树方法会大大减少查找子字符串的运行时间(以空间为代价),但我不知道如何实现该操作.

如果有更好的方法,我很想知道.

编辑:道歉,如果我似乎放弃了这个话题.

如果我不使用GST,而是使用一些标准数据结构,例如堆栈,队列,集合,堆,优先级队列等,该怎么办?序列X必须先排序,最大的字符串首先是自然的.如果我将它存储在字符串数组中,我将不得不使用诸如mergesort/quicksort之类的排序算法.目标是尽可能获得最有效的运行时间.

我是否可以将X存储在一个自动对其元素进行排序的结构中?最大堆怎么样?

看起来后缀树似乎是以这种方式查找子串的最佳方式.我可以使用其他任何数据结构吗?

string algorithm data-structures

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

NameError(未初始化的常量Mime :: XLS):

我在我的Ubuntu服务器上遇到问题,但它在我的本地机器上完全没有任何错误.

ruby version 1.9.3

rails version 3.2.13
Run Code Online (Sandbox Code Playgroud)

我做了以下配置:

application.rb中

require File.expand_path('../boot', __FILE__)
require 'csv'
require 'rails/all'
Run Code Online (Sandbox Code Playgroud)

/initializers/mime_types.rb

Mime::Type.register "application/xls", :xls
#Mime::Type.register "application/vnd.ms-excel", :xls
Run Code Online (Sandbox Code Playgroud)

我从这里得到了参考

ruby excel ubuntu ruby-on-rails ruby-on-rails-3

6
推荐指数
1
解决办法
2326
查看次数

在用于 CDN 的 vue 应用程序中保持资产和公共路径不同

vue 有这个选项publicPath,它允许一个应用程序部署在子路径上:foob​​ar.com/my-path,使链接和每个资产都可以通过它访问。

从性能的角度来看,我想在我的应用程序资产上启用 CDN。如何将 URL 专门用于资产(而不是超链接)?

例子: ./my-path/assets/app.js应该变成https://my-staging-cdn.com/my-path/assets/app.js
./my-path/url-2.html应该保持不变

下面的配置允许我设置路径和资产目录,但无法弄清楚如何为资产设置cdn URL

module.exports = {
  publicPath: ‘/my-path/‘,
  assetsDir: 'assets'
}
Run Code Online (Sandbox Code Playgroud)

不能做: publicPath: process.env.NODE_ENV === 'production' ? 'https://my-staging-cdn.com/my-path' : '/my-path/',因为它也会更改应用程序链接中的 URL。

vue-cli vue-cli-3 vue-cli-4

6
推荐指数
1
解决办法
681
查看次数

在建模网络的图形上的Dijkstra算法

我们有G = (V, E)一个comm的有向图.每个边缘具有不失败概率r(u, v)(定义为边缘权重)的网络,其位于区间[0,1]中.概率是独立的,因此从一个顶点到另一个顶点,如果我们乘以所有概率,我们得到整个路径没有失败的概率.

我需要一个有效的算法来找到其他给定的顶点,从一个给定的顶点最可靠的路径(即从第一个顶点到第二路径,该路径是最可能失败).我知道这log(r · s) = log r + log s会有所帮助.

这是我到目前为止 - :

DIJKSTRA-VARIANT (G, s, t)
for v in V:
    val[v] ? ?
A ? ?
Q ? V to initialize Q with vertices in V.
val[s] ? 0
while Q is not ? and t is not in A
    do x ? EXTRACT-MIN (Q)
    A ? A ? {x}
    for each vertex y ? Adj[x]
        do if val[x] …
Run Code Online (Sandbox Code Playgroud)

algorithm graph graph-algorithm

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

防止在rails中进行sql注入

我使用以下查询来查找最近的位置谷歌地图.它是否对Sql注入免疫.如果没有,任何人都可以帮助我摆脱它.

AlphaCourses.find_by_sql("SELECT *,(  6371 * acos( cos( radians( #{@latitude} ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( #{@longitude} ) ) + sin( radians( #{@latitude} ) ) * sin( radians( latitude ) ) ) ) AS distance FROM alpha_courses HAVING distance <= #{@radius} ORDER BY distance LIMIT 200")
Run Code Online (Sandbox Code Playgroud)

提前致谢.

ruby ruby-on-rails gmaps4rails ruby-on-rails-3.2

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

从模块定义时类变量泄漏?

考虑一下我有一个模块XYZ.当包含在类中时,它扩展了基类并在其中添加了一个类变量 @@foo.它还扩展了类的方法来做一些getset.

module XYZ
  def self.included(base)
    base.send :extend, ClassMethods
    base.class_eval do
      @@foo ||= []
    end
  end

  module ClassMethods
    def foo
      class_variable_get("@@foo")
    end

    def foo=(arg)
      class_variable_set("@@foo", arg)
    end

    def dynamic_set(*args)
      foo += args # This doesn't work
    end

    def dynamic_set_2(*args)
      class_variable_set("@@foo", class_variable_get("@@foo") + args)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,考虑一下用法:

class A
  include XYZ
end
A.foo #=> []
A.class_variable_get("@@foo") #=> []
A.dynamic_set 1, 2 #=> NoMethodError: undefined method `+' for nil:NilClass
A.dynamic_set_2 1, 2 #=> …
Run Code Online (Sandbox Code Playgroud)

ruby

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

密码确认无法在rails 3中运行

我必须给商店注册设施.用户必须输入名称,密码,确认密码.但是当我尝试输入不同的密码进行确认时,它没有显示任何错误,用户成功注册.这是UserMOdel中的代码

   class User < ActiveRecord::Base
       attr_accessible :name, :password_digest, :password, :password_confirmation
       validates :name, :presence => true, :uniqueness => true
       validates :password, :presence =>true,  :confirmation =>true
       validates_confirmation_of :password
       has_secure_password 
     end
Run Code Online (Sandbox Code Playgroud)

我在views/users/_form.html.erb中的代码如下.

 <div class="depot_form">
       <%= form_for(@user) do |f| %>
 <% if @user.errors.any? %>
  <div id="error_explanation">
  <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being    saved:</h2>

  <ul>
  <% @user.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
  <% end %>
  </ul>
  </div>
 <% end %>

     <fieldset>
      <legend>Enter User Details</legend>
        <div >
     <%= f.label :name %>:
       <%= …
Run Code Online (Sandbox Code Playgroud)

validation activerecord ruby-on-rails

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

Devise.rb可确认不起作用

我是Ruby和Rails的新手,并且与Devise有一些问题.我正在创建一个新的Devise安装.尽管如此,我相信我已经正确配置了devise.rb初始化程序以实现启用confirmable; 但是当我迁移数据库时,confirmed_at并没有相关的字段.我发现了很多关于如何添加它的帖子,但我想知道我是做错了什么还是做错了

rails generate devise User
Run Code Online (Sandbox Code Playgroud)

命令不会生成模型实例,即使您在创建之前已在devise.rb文件中启用了该实例?

我正在学习所以如果我从一开始就错误地配置我的devise.rb文件,我不想手动添加字段.感谢您的任何帮助!!!

附件是我的初始化文件devise.rb

Devise.setup do |config|
  config.mailer_sender = ENV["WEBSITE_FROM_ADDRESS"]
  require 'devise/orm/active_record'

  config.case_insensitive_keys = [ :email ]
  config.strip_whitespace_keys = [ :email ]

  config.skip_session_storage = [:http_auth]

  # ==> Configuration for :database_authenticatable
  # For bcrypt, this is the cost for hashing the password and defaults to 10. If
  # using other encryptors, it sets how many times you want the password re-encrypted.
  #
  # Limiting the stretches to just one in …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise devise-confirmable

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

为什么我没有在Ruby中获得相同的输出

在两种情况下,我没有获得一致的输出:

场景1:

humen = {"hand" => 1, "eye" => 2, "head" => 3, "hair"=>4}
puts  "enter any body part name"
internal = gets.chomp.downcase.to_s

body = humen[internal]

puts body
#if input is "eye", it comes out 2
Run Code Online (Sandbox Code Playgroud)

场景2:

humen = {hand:1, eye:2, head:3, hair:4}
puts  "enter any body part name"
internal = gets.chomp.downcase.to_s

body = humen[internal]

puts body
Run Code Online (Sandbox Code Playgroud)

我在irb控制台中看不到任何东西.任何人都可以解释为什么会这样吗?

ruby hashmap

0
推荐指数
1
解决办法
40
查看次数