Tag: ruby on rail

如何嵌套devise_invitable路由以邀请用户访问特定项目

问题 我在项目管理网络应用程序上使用devise和devise_invitablegem。 我成功邀请新用户加入网络应用。 但我需要的是邀请新用户参与特定项目,而无法弄清楚如何做到这一点。 我需要将项目ID作为路径的一部分,以便我可以正确连接控制器代码。 上下文 相关routes.rb部分如下: devise_for :users, :controllers => { :invitations => “invitations” } 所以: users/invitation/new作品的新邀请。 我自己的invitations_controller.rb会覆盖默认的InvitationsController 我有:projects作为我正在使用的资源,例如 resources :projects do resources :milestones, :task … etc end (我认为)我希望做出类似这样的工作: users/invitation/projects/4f3423d34323/new

Stripe Connect – 检索访问令牌

我正在尝试为rails 3.2.13 app设置Stripe Connect。 我已将用户定向到Stripe并从Stripe接收了授权代码: HTTP/1.1 302 Found Location: http://localhost:3000/yourshop/stripe?scope=read_write&state=1234&code=AUTHORIZATION_CODE 下一步是根据Stripe文档,通过access_token_url发出POST请求以接收access_token: curl -X POST https://connect.stripe.com/oauth/token \ -d client_secret=sk_test_code \ -d code=AUTHORIZATION_CODE \ -d grant_type=authorization_code 我对curl没有任何经验是一个rails应用程序,我在Stripe API中找不到任何似乎这个POST请求包含在Stripe Gem中的东西: gem文件: gem ‘omniauth-stripe-connect’ gem ‘stripe’ 模型 def save_with_stripe_account code = self.stripe_code customer = curl -X POST https://connect.stripe.com/oauth/token \ -d “client_secret=ENV[‘STRIPE_SECRET_KEY’]” \ -d “code=code” \ -d “grant_type=authorization_code” raise customer.inspect […]

OmniAuth before_filter要求登录

是否可以使用OmniAuth在某些操作之前要求登录? 我记得有一个轨道广播说Devise有一个before_filter,但OmniAuth呢?

允许匿名/来宾用户“试用”function,而无需在Rails / Devise / CanCan应用程序中注册

我正在使用Devise和CanCan开发一个Rails 3应用程序。 该应用程序允许匿名(未注册)用户访问某些应用程序,并允许注册用户访问其他部分。 应用程序(瑜伽锻炼应用程序)的一个方面是用户可以通过将瑜伽姿势串联起来创建瑜伽序列,然后他们可以在video播放器中播放它们。 我目前已经为注册用户提供了所有function,但是现在希望允许匿名用户能够创建序列并播放它,但要“保存”它(即能够在任何后续会话中再次使用它) ,他们需要注册。 目前,这需要实际创建一个属于用户的Sequence模型实例(简化如下) class Sequence “OrderedAsanaSequence”, :order => ‘position ASC’, :dependent => :destroy has_many :asanas, :through => :ordered_asana_sequences belongs_to :user def status_must_be_private_if_user_nil errors.add(:status, “must be private is user is nil”) if user == nil and status != :private end end 但是,当然,匿名用户没有用户模型。 我有点在Hackces属于用户的东西,但它不是强制性的(user_id可以是nil,如上所示),并且通过CanCan保护编辑的能力: class Ability {snip} # A guest can play with […]

rake db:migrate究竟是什么做的?

rake db:migrate是否仅添加新迁移,还是删除所有迁移/更改并构建新内容? 我认为rake会抛出错误,因为它试图访问迁移040中删除的迁移040中的表属性。不知怎的,我的DB和rake不同步,我想修复它们。 对于那里的专家 – rake与迁移不同步是否常见? 我怎么能避免这种情况(不,我不会手工编辑我的架构或rake文件)。

Rails turbolinks长请求不显示页面加载

在Rails中使用turbolink,如果请求花费很长时间,无论是否预期,浏览器都没有通常的提示来表明发生了任何事情。

Rails设计:登录后如何访问注册页面?

我是rails的新手,我正在使用“devise”gem进行身份validation。 首先,我通过默认注册页面添加新用户(例如/ users / sign_up) 然后,我通过以下说明向sign_in用户提供“sign_up”页面 在filter之前进行设计,以防止访问“new_user_registration_path”,除非用户已登录 现在,在我尝试打开注册页面登录过程后,它总是指示我到root_path! 我如何访问注册页面? 我的“roots.rb”文件如下: Example::Application.routes.draw do devise_for :users, :controllers => { :registrations => ‘registrations’} resources :companies resources :orders resources :customers root :to => “welcome#index” end 谢谢你们!

绕过标记为公共的特定记录的设计授权的最佳方法是什么

我正在使用Rails 3.2项目中的设计和cancan。 我有一个带有布尔标志public的事件模型。 如果事件被标记为public => true,那么我希望任何人登录或不能访问该记录 GET /events/:id 如果它被标记为public => false,那么一系列康康技能将决定授权和访问上述资源。 实现这一目标的最佳模式是什么?

Rails更短“time_ago_in_words”

除了“time_ago_in_words”之外,轨道中是否有不同的时间计算? 我希望能够在几个小时的时间内使用’h’几个月……前。 3d,或4h,或5m 我的代码现在…… ago.

设计注册控制器获取零资源的自定义操作

基本上我想要有两个单独的操作来更改密码和更改电子邮件,而不只是一个。 我已经更新了我的路由以指向我的新控制器,它inheritance自Devise :: RegistrationsController。 我的routes.rb: devise_for :users, :controllers => { :registrations => “registrations” } devise_scope :user do get “/users/password” => “registrations#change_password”, :as => :change_password end 我的registrations_controller.rb class RegistrationsController < Devise::RegistrationsController def change_password end end 我的app / views / devise / registrations / change_password.html.erb 这给了我零。 我在这里想念的是什么? 谢谢!