小编Bay*_*ae'的帖子

Rails 3 has_many:通过命名问题

好吧,所以这是交易.我有两个表和一个连接表,因为它是一个多对多的关系.我有订单,订单可以有很多产品.显然,它是另一种方式,因为产品可以在许多订单上.我有以下课程:

class Order < ActiveRecord::Base
  has_many :orders_products
  has_many :products, :through => :orders_products
end

class OrderProduct < ActiveRecord::Base
  belongs_to :order
  belongs_to :product
end

class Product < ActiveRecord::Base
  has_many :orders_products
  has_many :orders, :through => :orders_products
end
Run Code Online (Sandbox Code Playgroud)

我正在显示一个页面,我可以输入内容,当我通过保存的订单与产品进行交互时,@order.products我收到以下错误:

 SQLite3::SQLException: no such table: order_products: SELECT "products".* FROM "products" INNER JOIN "order_products" ON "products".id = "order_products".product_id WHERE (("order_products".order_id = 1))
Run Code Online (Sandbox Code Playgroud)

我的连接表已命名orders_products,但您可以看到它正在尝试加入order_products.我对Rails命名约定的有限知识告诉我,这orders_products是命名它的正确方法,然后将我的模型命名为OrderProduct.我真的在这个墙上碰到了一堵墙.

编辑:我看到即使它保存了我的订单它我选择了多个复选框它没有保存orders_products表中的任何值,大概是因为它现在错误的原因相同.

activerecord ruby-on-rails ruby-on-rails-3

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

如何创建适用于RSpec中所有规范文件的存根

我想知道是否有一种简单的方法可以在我的所有spec文件中包含存根.我正在使用Geocoder gem,当我运行RSpec测试时,我不希望它尝试下载位置信息.

我发现以下解决方案完美无缺.但是,我不想在每个spec文件中写相同的三行.

before(:each) do
  User.any_instance.stub(:geocode) { [1,1] }
end
Run Code Online (Sandbox Code Playgroud)

可以在我的spec_helper.rb文件中放一些东西吗?

rspec ruby-on-rails

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

删除Rails中多个子域的会话cookie 3

我正在构建一个类似于Wufoo的rails应用程序.注册后,您将获得一个子域名,您可以登录主页.该应用程序正在运行,因此当您登录时,您将被重定向到您的子域.问题是我无法删除两个域上的会话.如果您注销(username.myapp.com),它将保持登录状态(myapp.com),反之亦然.

现在我正在使用session[:user_id] = nil删除会话.有没有办法删除所有域中的所有会话.

另外,我附加:domain => :all到我的session_store.rb文件,所以我可以保持登录多个子域.

subdomain ruby-on-rails session-cookies ruby-on-rails-3

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

使用元搜索或Ransack与Geocoder

我创建了一个提供搜索条件的表单:

    = search_form_for @q do |f|
  %h3
    Search:
  = f.label :category_id
  %br
  = f.collection_select :category_id_eq, Category.all, :id, :name, :include_blank => true
  %br
  = f.label "Sub-Category"
  %br
  = f.collection_select :subcategory_id_eq, Subcategory.all, :id, :name, :include_blank => true, :prompt => "select category!"
  %br
  = f.label "Contains"
  %br
  = f.text_field :title_or_details_cont
  %br
  = f.submit
Run Code Online (Sandbox Code Playgroud)

我希望能够根据Rails Geocoder gem的"Near"功能进行搜索.有没有人知道如何合并现有的范围,或者特别是如何在Meta Search或Ransack中使用"近"范围?

到目前为止,我的所有尝试都是徒劳的.

ruby-on-rails rails-geocoder ransack

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

如何单击OpenLayers上的标记

我只是使用openlayer制作地图

我用自己的自制在OpenLayers制作了一张地图

但令我困惑的是,我无法将jQuery与OpenLayers集成,我在这里创建了一个简单的jQuery函数 show / hide ()

我试着点击中的OpenLayers地图标记,我发了,其中有ID的一个#OL_Icon_43内部div#map的OpenLayers,我试图做功能hide()在使用jQuery <head>,将隐藏标签之外的标签标签#map,但是,这并不为我工作

你能帮我吗 ?

这是我制作jquery代码的视图:

$(document).ready(function(){
   $("#OL_Icon_43").click(function() {
     $("footer").hide();
   });
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery openlayers

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

是否定义了嵌套哈希?()

什么是最简洁的方法来确定是否@hash[:key1][:key2]已定义,如果@hash@hash[:key1]为零,则不会抛出错误?

defined?(@hash[:key1][:key2])如果@hash[:key1]存在则返回True (它不确定是否:key2已定义)

ruby hash defined hash-of-hashes

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

JQuery和Twitter Bootstrap"按钮"插件 - 选择值

我有以下HTML并想使用Bootstrap的按钮插件 - http://twitter.github.com/bootstrap/javascript.html#buttons来选择"value"元素:

<div class="btn-group pull-right nav-tabs" data-toggle="buttons-radio">
  <button class="btn" value="60">Hour</button>
  <button class="btn" value="1440">Day</button>
  <button class="btn" value="10080">Week</button>
  <button class="btn" value="43200">30 Day</button>
</div>
Run Code Online (Sandbox Code Playgroud)

我有以下JavaScript成功执行onClick,但返回undefined.

$('.nav-tabs').button().click( function(e){     

  var selected = $(this).attr('value');

  console.log(selected);
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我如何从HTML获取"价值"元素?

javascript jquery twitter-bootstrap

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

在没有转义的情况下将用户数据存储在数据库中

我的大多数问题都是理论性的,因为我认为"伟大的思想讨论思想"和职员讨论语法.

无论如何..所以这是情况

我有一个系统从用户那里获取输入.但是在查询中根本没有使用该输入(根本没有).此输入包含许多代码段.现在在过去我转义了输入,然后将其存储在数据库中.我不使用任何类型的添加和剥离斜杠函数,而是使用我自己的程序,使用preg_replace,如下所示

$data = preg_replace("/\;/", "&#59;", $data);//
$data = preg_replace("/</", "&lt;",   $data);
$data = preg_replace("/>/", "&gt;",   $data);
$data = preg_replace("/\"/", "&quot;",$data);
$data = preg_replace("/\(/", "&#40;", $data);
Run Code Online (Sandbox Code Playgroud)

但是发生了以下问题.

有时软件会错误地逃避数据(因为我的软件没有错误),我无法找到实际数据.我不时更新我的​​转义程序,这意味着不同的输入被转义不同.

用户可以选择编辑他的帖子.因此,这意味着我必须向他提供转义数据(或取消数据)以防止数据转发两次......最后我得出的结论是,我将来自用户的未转义数据直接保存到数据库.并在显示之前将其转义(它没有其他用途..在查询等中没有用).对于任何其他事情我没有改变原始数据.

我的问题::

即使在查询中没有使用或在显示之前转义,数据库中未转义的用户数据仍然是危险的???

正在使用斜杠等于/更好/不同而不是通过追逐字符来逃避,例如<into <..

如果数据被正确转义(我的意思是所有特殊字符),它仍然可以用于XSS攻击.SQL注入是不可能的.

php mysql

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

如何在 Laravel 中覆盖身份验证登录功能

我需要覆盖 laravel 的默认登录功能,但是我对我在那里找到的代码感到困惑。我不明白 laravel AuthenticatesUsers.php 如何验证用户是否存在于 db 中,然后对用户进行身份验证。

我在AuthenticatesUsers.php 中使用了这个函数

/**
 * Attempt to log the user into the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return bool
 */
protected function attemptLogin(Request $request)
{
    return $this->guard()->attempt(
        $this->credentials($request), $request->filled('remember')
    );
}
Run Code Online (Sandbox Code Playgroud)

我想我需要在 auth/LoginController.php 中覆盖这个函数

但我不明白它是如何工作的。在哪里guard()attempt()实施,我想真正的行动发生在那里。我需要为登录添加另一个条件。

有人了解laravel的默认登录是如何工作的吗?和这两个功能guard()attempt(),例如尝试在 AuthenticatesUsers.php 本身内部没有实现,我相信它的这个函数我应该真正覆盖。

我在哪里可以找到它的实现?

php laravel laravel-5

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

RanSack 复杂的对象关系没有建立......(方法未找到错误)

首先是警告。我是一个总的 RoR n00b,但我有编程经验,所以我得到了基本的。我有一个正在构建的应用程序,我需要为其构建一个复杂的搜索引擎。基本布局是指南>> 个人资料>> 指导>> MentorAreas。下面是每个模型的代码,然后是我正在尝试构建的代码。我的问题是我似乎无法找出正确的对象名称来让搜索引擎搜索mentor_areas。

系统设置:

rails -v :: Rails 3.1.1
ruby -v :: ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0]
RanSack :: ransack (0.5.8) from git://github.com/ernie/ransack.git (at master) 
Run Code Online (Sandbox Code Playgroud)

指导:

class Guide < User
end
Run Code Online (Sandbox Code Playgroud)

用户:(相关内容)

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Virtual attribute for authenticating by either username or email
  # This is in addition to a …
Run Code Online (Sandbox Code Playgroud)

associations ruby-on-rails-3.1 ransack

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