Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。


1
Rails 4:在子路径中组织Rails模型而不使用命名空间模型吗?
可能会有这样的事情吗? app/models/ app/models/users/user.rb app/models/users/education.rb 目标是更好地组织/ app / models文件夹,但不必为模型命名空间。 Rails 3的一个悬而未决的问题是: Rails 3.2.9和子文件夹中的模型。 使用命名空间指定table_name似乎可以工作(请参见Rails 4模型子文件夹),但是我想在没有命名空间的情况下执行此操作。


6
在Rails迁移中将一列更新为另一列的值
我在Rails应用程序中有一个表格,里面有成千上万条记录,而且它们只有一个created_at时间戳。我要添加编辑这些记录的功能,因此我想updated_at在表中添加时间戳。在添加列的迁移中,我想更新所有行以使其新的updated_at匹配旧的created_at,因为这是Rails中新创建的行的默认值。我可以做一个find(:all)并遍历记录,但是由于表的大小,要花几个小时。我真正想做的是: UPDATE table_name SET updated_at = created_at; 在使用ActiveRecord而不是执行原始SQL的Rails迁移中,有没有更好的方法呢?

3
devise的token_authenticatable安全吗?
我正在使用Rails API构建一个简单的api ,并希望确保我在这里正确。我正在使用devise来处理登录,并决定使用Devise的token_authenticatable选项,该选项会生成一个API密钥,您需要随每个请求发送该API密钥。 我将API与主干/牵线木偶的前端配对,并且通常想知道应该如何处理会话。我的第一个想法是只将api密钥存储在本地存储或cookie中,并在页面加载时检索它,但是从安全角度来看,关于存储api密钥的某些事情困扰着我。通过查找本地存储/ cookie或嗅探通过的任何请求,并无限期地模拟该用户来获取api密钥,并非容易吗?我目前正在每次登录时重置api密钥,但即使这样看起来也很频繁-每当您在任何设备上登录时,这意味着您将在其他设备上都注销,这很痛苦。如果我可以放弃此重置,我认为从可用性的角度来看它将有所改善。 我在这里可能是完全错误的(并希望我是),任何人都可以解释这种方式进行身份验证是否可靠吗?总体而言,我正在寻找一种方法,可以安全地使用户“登录”到API访问权限,而无需经常强制进行重新身份验证。

3
对“ respond_to”和“ respond_to”感到困惑?
我正在用railstutorial.org学习Rails,并且对某些事情感到困惑:在本章中,作者告诉我们respond_to?使用User对象上的方法在控制台中进行一些测试,并且工作正常。但是后来,当我们为该:encrypted_password属性编写测试时,他使用respond_to。 出于好奇,我respond_to在控制台中尝试了一个User对象,但收到一条错误消息,指出该方法不存在。,如果我尝试使用respond_to?而不是编写测试respond_to,则测试不会运行。 有人可以解释一下两者之间的区别,为什么测试只能与之一起运行respond_to?

1
如何确定我的Rails是否在开发环境中而不在测试环境中?
我有一些仅在Rails应用程序处于开发环境(即$ rails服务器)中但不在测试环境(即$ rake测试)中时才需要运行的代码。 当我尝试 if Rails.env.development? dont run me during testing end 无论我处于哪种环境下,代码都会执行。我什至尝试过: if Rails.env.development? and not Rails.env.test? NO, REALLY, DONT RUN ME DURING TESTING end 但没有爱。 我应该怎么做呢?

6
在Rails 3.1中添加新的资产路径
有谁知道如何在Rails 3.1中向资产管道添加另一个文件夹? 我想以app/assets/fonts同样的方式app/assets/images服务。 更新:2013年5月7日 只是为了向以后发现此问题的人们提供一些说明,以便在application.rb文件中显式添加资产路径: config.assets.paths << "#{Rails.root}/app/assets/fonts" 但是,由于上面的路径是在下面,因此app/assets您不必显式添加它,您只需要重新启动Rails应用程序即可,Sprockets可以选择它。 你必须明确地添加是外面的路径app/assets,lib/assets或者vendor/assets,只是记得,虽然链轮在存在时,你的应用程序中加载,在我的经验,它不拿起资产路径新的文件夹不夹拿起新文件重新启动。

4
Rails API:实现身份验证的最佳方法?
我正在写一个Rails 4应用程序,它将公开尚未开发的移动应用程序的API。用户将使用来自移动应用程序的电子邮件和密码进行身份验证。 虽然我已经找到了很多有关该主题的信息。很难分辨出什么是过时的或非最佳的。我已经读过关于HTTP基本身份验证(似乎不太安全)和基于HTTP令牌的身份验证的信息,但是我不确定如何将其与常规的电子邮件和密码身份验证结合使用(我正在使用Devise by方式)。 我只是想知道当前如何实现这一点的最佳实践,所以我一定会走正确的路。

4
设计valid_password的怪异问题?
在过去的2个小时中,我一直在尝试调试一个怪异的问题,该问题不允许我登录。 这也是我指的东西: password => 'vinodsobale' password == 'vinodsobale' => true resource.valid_password?(password) => false resource.valid_password?('vinodsobale') => true 以及屏幕截图: 注意:我在devise中启用了调试器,因此上面的代码是devise内部代码。 对我来说,这似乎是一个问题Devise.secure_compare。

2
Rails-未定义的方法'stringify_keys'
我正在尝试为用户单击后退按钮创建一个红宝石代码块。我收到错误“针对“ / projects / 11 / steps / 4”的未定义方法`stringify_keys':字符串”。当我摆脱do和end时,代码将起作用。如何将一个do添加到link_to? <%= link_to 'Back', project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %> <% end %>

6
为什么Flash消息不会消失?
我正在控制器中进行一些异常处理,当:create操作中引发异常时,我将呈现为:new操作并显示一条Flash消息。 一切正常,当捕获到异常时,我可以看到Flash消息,但是当我重定向到(手动单击)其他页面时,Flash消息仍在此处。然后我重定向到另一个页面(第二次单击),消息可能消失。 有谁知道原因吗? 我的控制器代码: class MessagesController < ApplicationController rescue_from Exception, :with => :render_new def new end def create end private def render_new flash[:alert] = t("uploading_error") render :action => :new end end 我的布局代码(Haml): %body #content - unless flash[:alert].blank? #alert= flash[:alert]

3
为什么在Rails 3中找不到我在lib / tasks中的自定义rake任务?
内置的rake任务可以正常工作,但是我的新自定义任务在Project / lib / tasks / payments.rb中没有加载: namespace :payments do desc "Tally payments at the end of the month" task :compute => :environment do BillingPeriod.compute_new_period end end $ rake payments:compute (in /Users/rob/Code/Apps/skyfarm) rake aborted! Don't know how to build task 'payments:compute' 如果我加载文件application.rb,它可以正常工作: require 'lib/tasks/payments.rb' ...但是它打破了其他东西: $ rails s ./lib/tasks/payments.rb:1: undefined …

4
在所有之前vs每个之前的rspec
Competition_entry_spec.rb require 'spec_helper' describe ContestEntry do before(:all) do @admission=Factory(:project_admission) @project=Factory(:project_started, :project_type => @admission.project_type) @creative=Factory(:approved_creative, :creative_category => @admission.creative_category) @contest_entry=Factory(:contest_entry, :design_file_name => 'bla bla bla', :owner => @creative, :project => @project) end context 'non-specific tests' do subject { @contest_entry } it { should belong_to(:owner).class_name('User') } it { should belong_to(:project) } it { …

2
Rails number_field替代十进制值
我正在尝试使用number_field方法接受一个十进制值(USD,所以12.24将是一个示例)。 <div class="controls"> <%= f.number_field :amount, :class => 'text_field' %> </div> 这只允许我输入整数值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.