小编Ton*_*ony的帖子

安全地向rails网站添加管理访问权限的最佳方法是什么?

我认为答案是管理员登录,然后检查用户是否有管理员标志,但我也想到了一些其他相关问题.

在与非管理员相同的用户表中设置管理标志(attr_protected)是否更好?或者我应该有一个管理员用户表?

我应该为管理员用户创建单独的rails应用程序吗?这可能是过度的,因为他们都必须访问相同的数据库(更不用说设置可能是一个巨大的痛苦).

还有其他建议吗?现在我只需要保护一两页,所以我甚至将HTTP基本或摘要认证作为一种临时措施(受保护的内容实际上不是私有/重要的).但是......我不知道如何为特定的操作实现HTTP auth,我只看到了如何实现它以防止目录访问.

任何方向和讨论都会很棒.我相信其他Stack Overflow用户将从这次讨论中受益.

谢谢!

security authentication administration ruby-on-rails

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

如何在rails表格中处理ruby中的日期对象?

我正在使用rails帮助程序创建3个选择列表,以便让用户选择日期.如果我为帮助者分配一个名称,它会将所有3个选择列表设置为具有该名称,然后只有最后一个列表通过(它会覆盖前一个).我需要知道的是:采用一组3个选择列表(日,月,年)的最佳方法是什么,并将它们组合起来创建日期对象并将其保存到我的数据库中?

这是我的日期字段:

<%= select_date Date.today, { :order => [:month, :day, :year], :start_year => Date.today.year, :end_year => Date.today.year + 3 } %>
Run Code Online (Sandbox Code Playgroud)

这是传递给我的控制器的参数(从我的开发日志中吐出)

Parameters: {"date"=>{"month"=>"4", "day"=>"9", "year"=>"2009"}, 
"action"=>"create", "controller"=>"shows", 
"show"=>{"headline"=>"for example, \"Parking lot is next to the bookstore on Main Street\"", "venue_id"=>{"venue_id"=>""}, "cents"=>"00", "dollars"=>"00"}, 
"user_id"=>"3", "load_in"=>"-2", "show_time"=>"-2", "query"=>"Type venue name & location here...", "doors"=>"-2"}
Run Code Online (Sandbox Code Playgroud)

如您所见,日期已过.理想情况下,我希望将日期作为可接受的日期对象传递给我的控制器.此外,我希望它传递"show"哈希,因为它是显示数据.通过一些简单的轨道修改可以实现吗?或者我必须写一些JS(在我看来,这个解决方案有点脏)?

ruby forms select ruby-on-rails date

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

无法将字符串插入MySQL文本列

出于某种原因,当我写入"text"类型的列时,我的查询搞砸了.这是一个例子:

Describe messages;

Field         Type          Null  Key  Default  Extra
id            int(11)       NO    PRI  NULL     auto_increment
title         varchar(255)  YES        NULL 
body          text          YES        NULL 
to            text          YES        NULL 
content_type  varchar(255)  YES        NULL 
is_sms        tinyint(1)    YES        NULL 
user_id       int(11)       YES        NULL 
created_at    datetime      YES        NULL 
updated_at    datetime      YES        NULL
Run Code Online (Sandbox Code Playgroud)

然后我尝试插入:

INSERT INTO messages (id,title,body,to) VALUES ('1','Test Message','This is a test message. This is a test message. This is a test message. This is a test message.', 'an email' );
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这会导致一般的MySQL语法错误.如果我删除"to"列并且它是查询中的相应值,则查询工作正常.

有任何想法吗?

mysql syntax text insert

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

Git一直在从我的存储库中删除2个目录,我该如何解决这个问题呢?

我不指望有人能解决我的问题,但我不太确定如何解决这个问题.如果我做"git status",我得到:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    app/controllers/application.rb
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#       modified:   app/views/main/index.html.erb
#       modified:   public/stylesheets/bandop.css
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       vendor/plugins/contacts/.gitignore
#       vendor/plugins/contacts/.gitmodules
Run Code Online (Sandbox Code Playgroud)

但如果我做"git add".然后"git status",我得到:

# On branch master
# Changes to be committed: …
Run Code Online (Sandbox Code Playgroud)

git version-control

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

file_field在我的Rails表单中不粘

我有一个非常标准的Rails表单:

<div>
    <h1>Create a New Listing</h1>
    <%- form_for @listing, :html => {:multipart => true} do |f| -%>
                    <div><%= f.label :title, "Title:"%> <%= f.text_field :title %></div>
            <div>
                <%= f.label :image, "Image:" %> <%= f.file_field :image 
            </div>
            <div>
                <%= f.label :sound, "Sound Clip:"%> <%= f.file_field :sound %><br />
            </div>
        <div class="submit"><%= f.submit 'Post Listing' %></div>
    <%- end -%>
</div>
Run Code Online (Sandbox Code Playgroud)

当用户选择文件但表单因验证失败时,他必须始终重新选择该文件.它不粘.有关如何解决此问题的任何建议?

谢谢!

forms ruby-on-rails

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

如何在目标C中设置工具栏的高度?

我在我的applicationDidFinishLaunching中有这个代码:

navController.toolbarHidden = NO;
[navController toolbar].tintColor = [UIColor darkGrayColor];
[[navController toolbar] setFrame:CGRectMake(0.0,0.0,320.0,180.0)];
Run Code Online (Sandbox Code Playgroud)

前两行肯定会对UI产生影响.例如,如果我将toolbarHidden设置为YES,它肯定是隐藏的.但是,当我尝试设置框架并自定义工具栏高度时,不会发生任何更改.有谁知道如何解决这一问题?

iphone objective-c uitoolbar

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

使用块来定义CanCan中的异能会引发异常

我正在使用Ryan Bate的CanCan gem来定义能力,而一些基本功能正在失败.我有一个产品型号和产品控制器,我的索引操作如下所示:

def index
    @req_host_w_port = request.host_with_port
    @products = Product.accessible_by(current_ability, :index)
end
Run Code Online (Sandbox Code Playgroud)

当我尝试使用该accessible_by方法检索产品时出现错误,我收到此错误:

Cannot determine SQL conditions or joins from block for :index Product(id: integer, secret: string, context_date: datetime, expiration_date: datetime, blurb: text, created_at: datetime, updated_at: datetime, owner_id: integer, product_type_id: integer, approved_at: datetime)
Run Code Online (Sandbox Code Playgroud)

我的能力课看起来像这样:

can :index, Product do |product|
   product && !!product.approved_at
end
Run Code Online (Sandbox Code Playgroud)

这看起来像一个非常简单的例子,所以我很惊讶它失败了,想知道我是否忽略了一些简单的事情(即我盯着我的代码太长时间).

我做了更多的探测并进行了一个简单的测试.如果你看下面的代码,一个例子工作正常,一个失败,他们应该实际做同样的事情.

# This works
can :index, Product, :approved_at => nil

# This fails
can :index, Product do |product|
    product && product.approved_at.nil?
end
Run Code Online (Sandbox Code Playgroud)

所以问题似乎在于CanCan正在处理这些块的方式.我更深入地进入库并找到错误的位置 …

ruby-on-rails cancan

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

如何为思考sphinx指定MySQL sock文件位置?

我的套接字文件位于:

/var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)

当我做:

rake thinking_sphinx:start
Run Code Online (Sandbox Code Playgroud)

我明白了:

rake aborted!
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)

我想告诉think_sphinx我的套接字文件在哪里.这怎么可能?在Slicehost上执行我的切片硬重启后出现此问题.

mysql thinking-sphinx

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

Ruby on Rails中的自定义getter

我有一个拥有_may:people的MailingList模型

对于我的大多数应用程序,我只想让那些活跃的人

所以@mailing_list.people应该只返回活跃的人

在我的模型中,我做不到

def people
  self.people.find_all{ |p| !p.activated_at.nil? }
end
Run Code Online (Sandbox Code Playgroud)

因为这一直在呼唤着自己.什么是ruby/rails自动过滤人的方式.另一个可能的问题是我认为self.people返回一个活动记录对象数组,self.people.find_all...返回一个数组.这将导致我的一些代码中断.这很容易修复,但有没有办法返回活动的记录对象?有选择会很高兴.

谢谢!

getter ruby-on-rails

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

有没有办法在javascript中检测查看者的主页?

理想情况下,我想要一个跨浏览器解决方案.

谢谢!

javascript

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