Tag: ruby on rails 3

Rails 3 – 在创建帐户后自动登录用户

在我的signup_process ,我有两个方法signup_process和login 。 我想在signup_process调用成功后自动为用户调用login 。 这可能吗? 在其他语言框架中,我通常只是通过传递用户名和密码的signup_process操作直接调用login控制器操作 – 但我认为这在Rails中是不受欢迎的。 有没有办法将用户数据发布到我的控制器的users.login操作? 这必须是一种常见的模式 – 我错过了什么? 🙂 提前致谢!

机架:管理客户端和服务应用程序响应

我正在使用Ruby on Rails 3,我在服务应用程序上正确设置Rack中间件行为时遇到了一些问题,以便使用来自客户端应用程序的传入请求。 我改变了我的代码 第一个代码 # application.rb config.middleware.use “Rack::Api::User” # lib/rack/api/user.rb module Rack module Api class User def initialize(app) # Changed part @app = app end def call(env) # Changed line if env[“PATH_HOST”] =~ /^\/api\/user\//i # Changed line @app.call(env) # Changed line else [200, {}, [“Nope, missed it. Here’s env:\n” + env.inspect]] end end […]

在实施“副作用”元编程时加载类的麻烦

我正在使用Ruby on Rails 3.2.9和Ruby 1.9.3-p125。 方案如下: 我实现了一个acts_as_customizable插件,我有一个Article模型类“充当可自定义”。 该插件通过元编程, 将一个名为customize 的方法添加到Comment模型类中( 注意 :由于这个原因,该插件具有副作用,因为操作了Article对象范围之外的Comment对象)。 鉴于这种情况,当我(重新)启动服务器并运行@comment.customize我得到错误NoMethodError – undefined method ‘customize’ for # 。 但是,当我(重新)启动服务器并运行以下代码时,所有工作都按预期工作: Article @comment.customize 如果我理解“邪恶”部分,上面的代码是有效的,因为在运行customize方法之前对Article类的“简单”调用使得它触发acts_as_customizable方法,该方法又将(通过元编程) customize方法添加到Comment类。 我该如何避免“邪​​恶”?

如何在Rails中使用form_for仅更改模型中的一个属性

我想更改我的User模型的profile属性,它只是form_for中的一个字符串。 我遇到了一个问题,当我更新我的个人资料属性时,我的密码被设置为空白。 也就是说,我的用户帐户有密码,但是当我更改我的个人资料时,我的密码变为空白。 下次我尝试登录时,我只是将密码字段留空。 如何在不更改密码的情况下更改个人资料字段? 谢谢。 这是我下面的表格和更新动作。 我正在传递一个名为updating_password的隐藏字段,它是一个布尔值,用于是否需要密码validation和确认。 edit_profile.html.erb { :multipart => true } do |f| %> “false” %> users_controller.rb def update @user = User.find(params[:id]) @user.updating_password = params[:user][:updating_password] #for updating profile only if(@user.updating_password == ‘false’) if @user.update_attribute(‘profile’, params[:user][:profile]) redirect_to @user else @title = “Edit user” render ‘edit’ end end #for updating everything else including password […]

在Rails应用程序中从数据库中提取CSS资源(如背景图像)?

我想知道是否有一种方法可以将CSS资产路径(如背景图像)存储在数据库中,这样它们就可以自定义而无需访问或重写代码。 我看过一些模板引擎, 比如液体 ,但认为它们对我想做的事情来说太过分了。 我只希望在我的视图中对同一应用程序代码库的各种部署进行一点点自定义,而不是针对不同用户的任何部署。 我不太关注Rails 3.1,但据我所知,CSS资产已被编译并且不再是静态的,所以 – 这是否意味着我可以将这样的东西写入我的CSS中的rails 3.1数据库? 我通常部署到Heroku,并不确定他们是否支持3.1。 任何人都有更好的策略或想法吗?

更改Rails 3中日期输入的格式?

我在Rails 3中使用text_field进行日期输入,并希望将日期格式化为mm/dd/yyyy 。 虽然我已经找到了一些以这种方式显示日期的解决方案,但我还没有遇到一种可行的方法来接受该格式作为输入。 问题是,在”09/05/2011″类的模糊日期的情况下,Rails将其解释为“5月9日”而不是“9月5日”。 根据mm/dd/yyyy格式让Rails 3解释这些输入的最佳方法是什么?

如何在配置/初始化程序中使用YML值

我正在努力将facebook整合到我的应用中。 要做到这一点,我正在使用考拉,设计和omniauth。 对于考拉,我有 /config/facebook.yml development: app_id: 123123132123 secret_key: dasadsasd1231231 test: app_id: 313131313 secret_key: das132asdads12132 production: app_id: dasdsadsadsadsa secret_key: adsdsa12das123fds21 然后我也有了omniauth: /config/initalizers/omniauth.rb Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook, 123123132123, ‘dasadsasd1231231’ end 这里的问题是我在两个位置都重复了相同的值。 我该如何干这个,以便app_id和secret_key只存在于一个地方,一个文件引用另一个?

在Ruby中包含JavaScript(在Rails上)

我不太明白Rails包含JavaScript文件的方式。 谷歌和以下文件没有解决我的问题: http://railsapps.github.io/rails-javascript-include-external.html http://guides.rubyonrails.org/asset_pipeline.html 我知道Rails使用清单文件(例如applications.js)将每个包含的JavaScript文件打包成一个大文件(性能原因等)。 在application.html.erb中,您需要包含此清单,例如 我在/ app / assets / (例如my_javascript.js)中添加了一个JavaScript文件。 所以,如果我查看源代码,我可以找到 如果我打开文件,my_javascript.js的内容将在application.js文件中呈现。 我的问题:该function无效。 但是,如果我直接在application.html.erb中包含my_javascript.js,就像 这是工作! 当然,它呈现第二个脚本标记,如: 最后,如果我将其包含在特定内容中,为什么该function有效,而不是如果我使用清单(它应该如何)? 我是否需要考虑有关资产管道的特殊内容? 我的清单包括 //= require_tree . 但我甚至尝试过 //= require my_javascript 我使用Ruby 1.9.3在Rails 3.2.3上。 先感谢您!

AuthLogic UserSessions Controller返回Nil

我已经设置了一个新的Rails应用程序并使用Authlogic进行身份validation。 我很高兴CRUD用户,但用户会话似乎有问题。 错误信息: undefined method `create’ for nil:NilClass app/controllers/user_sessions_controller.rb:9:in `create’ 应用程序/模型/ user.rb class User < ActiveRecord::Base acts_as_authentic end 应用程序/控制器/ user_sessions_controller.rb class UserSession < Authlogic::Session::Base end 应用程序/模型/ user_session.rb class UserSessionsController < ApplicationController def new @user_sesssion = UserSession.new end def create @user_sesssion = UserSession.new(params[:user_session]) if @user_session.create flash[:notice] = "Welcome back!" redirect_to root_path else render :new end end […]

使用javascript_include_tag在rails 3.2.8引擎中执行ExecJS :: RuntimeError

我们将两个轨道3.2.8引擎放在一个轨道应用程序中。 问题是ExecJS不喜欢布局文件中javascript_inclide_tag的命名空间。 这是导致错误的标记: 这里authentify是rails引擎名称。 错误是: ExecJS::RuntimeError in Authentify/sessions#new Showing C:/D/code/rails_proj/engines/authentify/app/views/layouts/sessions.html.erb where line #6 raised: (in C:/D/code/rails_proj/engines/authentify/app/assets/javascripts/authentify/sessions.js.coffee) Extracted source (around line #6): 3: 4: Login 5: 6: 7: 8: 9: 如果我们删除名称空间authentify( ),则ExecJS错误消失并且rails应用程序正常工作。 使用js标记的另一个rails引擎存在相同的错误。 我们正在使用Windows环境。 什么可能导致错误? 谢谢您的帮助。 更新: 在engine.rb for authentify中,每个js库都列为: initializer “Authentify precompile hook”, :group => :all do |app| app.config.assets.precompile += [ ‘authentify/application.css.scss’, ‘authentify/layout.css.scss’, ‘authentify/login.css.scss’, ‘authentify/paginate.css.scss’, […]