Tag: ruby on rail

rails 3路由堆栈级别设计太深

我收到有关我的路线文件的错误 SystemStackError (stack level too deep): actionpack (3.2.8) lib/action_dispatch/middleware/reloader.rb:70 Rendered /Users/duy/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.5ms) Rendered /Users/duy/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.3ms) Rendered /Users/duy/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (19.9ms) 我可以隔离有问题的代码,但不明白是什么创建了无限循环: devise_for :users, :controllers => { :registrations => “registrations”, :sessions => “sessions”, :omniauth_callbacks => “users/omniauth_callbacks” } devise_scope :user do match ‘/sessions/simulate_user/:id’ => ‘sessions#simulate_user’, :as => :simulate_user_sessions match ‘/sessions/leave_simulation_mode’ => ‘sessions#leave_simulation_mode’, :as => :leave_simulation_mode_sessions get “user_confirmation”, […]

使用RVM安装后,Ruby 1.9.2一直恢复到1.8.7

我安装了Ruby 1.9.2。 我使用rvm use 1.9.2然后当我输入ruby -v它说1.9.2。 然后,当我退出终端并重新打开它时,它再次显示1.8.7。 我究竟做错了什么?

如何使用rails devise gem成功注册时重定向到特定页面?

如何使用rails devise gem成功注册时重定向到特定页面?

如何使用设计validation来validation注册电子邮件地址是否来自某个域?

我想确保只有某个域的电子邮件地址的人可以注册使用Devise的网站。 例如,如果人们使用电子邮件joe@mysite.com注册,他们应该收到确认电子邮件,但如果使用joe@yoursite.com注册,他们应该收到错误消息。

Rails 3 +设计:user_signed_in? 对于数据库中的其他用户?

我正在构建一个应用程序,我想为给定用户添加在线状态。 我知道Devise有一个方法user_signed_in? 内置以检查使用该应用程序的用户是否已登录。 但是当我尝试将它用于这样的不同用户时: user_signed_in?(user) user.user_signed_in? 我显然得到一个未定义的方法错误。 Devise有这个方法还是我必须自己编写? 一种方法是将给定用户的在线状态存储在用户模型中。 什么是最好的解决方案?

当每个请求的app id和app secret不同时,请使用omniauth-facebook?

omn​​iauth-facebook README提到了如何在初始化程序中设置它以及如何仅为每个请求设置scope选项。 我想知道是否可以为每个请求设置app id和app secret。

如何构建Rails POST方法的邮递员请求

无论我如何格式化此请求的原始部分,我都无法避免下面的解析错误。 我有一个带有传递规范的create方法的Rails API,以说明控制器消息是合理的: describe “POST power_up” do let!(:client) { FactoryGirl.create :client, name: “joe”, auth_token: “asdfasdfasdfasdfasdfasdf” } it “should create and save a new Power Up” do expect { post :create, format: :json, power_up: FactoryGirl.attributes_for(:power_up) }.to change(V1::PowerUp, :count).by(1) end end 我正在使用Postman尝试POST。 无论我尝试什么,我都会收到错误: Started POST “/v1/power_ups.json” for 127.0.0.1 at 2014-08-30 18:05:29 -0400 Error occurred while parsing request […]

在Rails 3中处理多租户的最佳方法

我正在构建多租户应用程序。 所有数据隔离都由每个表中的TenantID列完成。 所有租户模型自动处理多租户的最佳方法是什么。 例: Contacts.new({…..}) should automatically add :tenant => curret_user.tenant Contacts.where({….}) should also add :tenant => curret_user.tenant 目前我在CanCan gem中看到类似这样的内容,它可以获取特定用户参数的记录。 但它没有为插入和更新操作提供任何东西。 或者可能是我不明白该怎么做。 此致,Alexey Zakharov。

一个来自Destroy动作的Redirect_to总是得到DELETE动词:我声明的方法

我在名为tareas_controller的控制器中有以下方法 def destroy @tarea = Tarea.find(params[:id]) @tarea.destroy respond_to do |format| format.html { redirect_to tareas_url } format.json { head :ok } format.js { redirect_to :controller => “clientes”, :action =>”show”, :id => @tarea.cliente, :format => :js, :method=>:get} end end 记录被删除了,之后我在服务器上获得以下代码: 重定向到http://127.0.0.1:3000/clientes/12.js?method=get已完成302发现于174ms 在2012-05-06 19:20:07开始删除“/clientes/12.js?method=get”for 127.0.0.1 +0200由ClientesController处理#Drown作为JS参数:{“method”=>“get”, “id”=>“12”} Cliente Load(0.0ms)SELECT“clientes”。* FROM“clientes”WHERE“clientes”。“id”=? LIMIT 1 [[“id”,“12”]] SQL(2.0ms)DELETE FROM“clientes”WHERE“clientes”。“id”=? [[“id”,12]]已完成406在131ms内无法接受 它似乎将带有DELETE谓词的请求发送到新控制器,我无法找到将其更改为对新控制器的GET请求的方法。 有人可以告诉我如何解决这个问题吗?

Devise控制器中“产生资源”的作用是什么?

我正在查看Devise代码并注意到大多数控制器都会产生正在创建的资源。 class Devise::RegistrationsController < DeviseController # … def create build_resource(sign_up_params) resource.save yield resource if block_given? # … 这必须是某种可扩展性function,但我真的不知道如何将块传递给控制器​​操作? 注意:这个问题是关于如何在Rails请求周期中实际执行的操作,而不是关于Ruby中的块如何工作。