Tag: ruby on rails 3

从.txt文件将变量插入ERB

我构建了一个.erb文件,其中列出了一堆变量。 然后我有一个包含变量的文本文件: header=This is the header intro1=This is the text for intro 1 content1=This is the content for content 1 content2=This is the content for content 2 content3=This is the content for content 3 我需要从文本文件中获取变量并将它们插入到.erb模板中。 这样做的正确方法是什么? 我只是想要一个ruby脚本,而不是整个rails网站。 它仅适用于小页面,但需要多次完成。 谢谢

在rails设计ldap gem中检查组成员资格,它是否在yaml中?

我应该使用ldap.yml文件来确保使用ldap进行身份validation是否已为其分配了正确的组以允许它们进入? 无论如何我不是AD专业人士,这让我感到困惑……是一个群体和属性。 据我所知。 我们在AD中有一个用户,他们有一个samAccount名称,我可以让它进入应用程序,但它不关心他们的团队是什么。 它是一个专门的应用程序,实际上有一个memberOf属性: HD Admin HD Helper HD Reset Security 应该都被允许进入应用程序,我也(使用apache目录工作室后)已经意识到有许多memberOf条目: 例如Bob可能有两个memberOf条目: memberOf CN=Security,OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu memberOf CN=HD Admin, OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu 那么我的yaml看起来怎么样才能做到这些呢? authorizations: &AUTHORIZATIONS group_base: OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=nmsu,DC=edu ## Requires config.ldap_check_group_membership in devise.rb be true # Can have multiple values, must match all to be authorized required_groups: # If only a group name is given, membership will be […]

避免使用第三方gem是正确的吗?

我正在使用Ruby on Rails 3.2.2。 我想知道以下的想法(从我之前的问题出生)是否正确: 我倾向于不使用第三方gem(至少在可能和合理的情况下),因为它们可能随时被抛弃。 此外,如果Ruby on Rails框架发生变化,我可能需要等待更新这些gem才能将我的应用程序更新到最新的RoR版本。

rvm + rails3 + gmaps4rails – acts_as_gmappable

我是一个带ruby栏杆的菜鸟。 对不起,如果我的问题很愚蠢。 我用运行ruby 1.8.7-p334的rvm(作为用户)设置了一个环境。 我为我的“app”创建了一个gemset,现在我想在页面上显示一个地址的地图。 我一直在四处寻找gmaps4rails。 我在我的Gemfile和bundle install中添加了“gem’gmaps4rails’” 我修改了我的模型(添加了必需的列和rake db:migrate)和acts_as_gmappable,我得到了 undefined local variable or method `acts_as_gmappable’ 如果我添加require’gmaps4rails’,我会得到一个 no such file to load — gmaps4rails 有什么想法吗? 谢谢。

它是在’lib /’目录中实现自定义validation器的正确方法吗?

我正在使用Ruby on Rails 3.2.9。 解决与自定义validation器相关的“ 在’lib’目录的子目录中扩展Rails的麻烦 ”的方法是声明以下代码(注意文件所在的目录) # lib/extension/rails/custom_validator.rb class CustomValidator < ActiveModel::EachValidator # … end 并在config/application.rb文件中放入config.autoload_paths += %W(#{config.root}/lib/extension/rails)语句。 这样启动服务器时正确加载了CustomValidator ,我的lib/目录按照我的预期进行组织。 但是,我想知道这是否是在RoR中制作这些东西的“正确”/“正确”方式。 换句话说,有没有更好的方法来实现同样的目标? 注意 :为了组织文件中的代码,我正在考虑命名空间类,如下所示: # lib/extension/rails/custom_validator.rb module Extension module Rails class CustomValidator < ActiveModel::EachValidator # … end end end 但是,通过使用上面的代码,似乎没有一种简单的方法可以使CustomValidator工作,即使我在config/application.rb声明config.autoload_paths += %W(#{config.root}/lib) config/application.rb文件。

Rails命名空间错误?

我在config/routed.db有这个: namespace :admin do resources :users resources :events end 我通过使用脚手架Rails提供了生成User模型,然后我通过使用Rails的generate简单地生成了一个管理员/管理员控制器,并简单地将所有与用户相关的内容移动到controllers / views / helpers内的admin子目录中。 是的,我确实必须在几个地方添加admin_并在表单部分内部我必须将form_for(@user)更改为form_for([:admin, @user]) 。 当我尝试创建一个新用户时(这是我发布用户数据的时候),我收到以下错误消息: undefined method `user_url’ for # 应用程序级跟踪显示此处引发错误: app/controllers/admin/users_controller.rb:47:in `create’ 引发此错误的代码行: format.html { redirect_to @user, :notice => ‘User was successfully created.’ } 上面的行在respond_to块内。 所以,我有两个问题: 我该如何解决这个问题? 这样做有更智能,更好的轨道方式吗? 此外,如果你建议我用更聪明,更好的轨道方式重新做这个奖励积分! 好吧,无论如何我会这样做! :d 更新 哦,我差点忘了可能有用的东西! 我还使Admin::UsersControllerinheritance自Admin::AdminController (通常inheritance自ApplicationController ): Admin::UsersController < Admin::AdminController

Ruby Geocoder gem找到邮政编码

我正在使用ruby geocoder gem按位置搜索。 我想将搜索限制在已正式启动的位置。 如果有人通过zip搜索,使用正则表达式很容易。 但如果有人按城市搜索,我需要将城市转换为邮政编码,检查我的邮政编码表,如果是肯定的,则返回搜索结果。 地理编码器api有一个反向地理编码部分: reverse_geocoded_by :latitude, :longitude do |obj,results| if geo = results.first obj.city = geo.city obj.zipcode = geo.postal_code obj.country = geo.country_code end end after_validation :reverse_geocode 这显然是为了在模型中使用而构建的。 但我试图在我的控制器中使用它,但是obj.zipcode根本不起作用。 Geocoder.search(’san jose,ca’)似乎回归了我所需要的,我只是不知道如何去做。 这是我在的地方: if params[:search].present? # coords = Geocoder.coordinates(params[:search]) zip = Geocoder.search(params[:search]) if Zip.where(:zip => (params[zip.zipcode]), :launch => true).exists? addresses = Address.near(params[:search], 25, :order […]

如何在Rails中更改菜单项的类

我有一个菜单导航布局。 我正在使用我在网上找到的模板。 每个菜单项都有一个HTML页面,每个相应页面的li项目类别被称为“已选择”。 它看起来像这样: 所以这是在我的application.html.erb文件中。 我的问题是如何根据用户点击的链接以编程方式将每个li项目的类更改为“已选择”? 这可以用Ruby完成,还是需要使用JavaScript?

ruby on rails rspec错误

我正在通过“按示例学习Rails”一书,并且我正在尝试运行测试。 出于某种原因,我无法让rspec正常工作。 如果我按照他的指示运行rspec spec/命令,我会收到以下错误: $ rspec spec/ /home/desktop/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.21/lib/bundler/runtime.rb:31:in `block in setup’: You have already activated rspec-core 2.7.1, but your Gemfile requires rspec-core 2.6.4. Using bundle exec may solve this. (Gem::LoadError) 奇怪的是我的Gemfile没有指定版本 – group :development do gem ‘rspec-rails’ end group :test do gem ‘rspec’ gem ‘webrat’ end 如果我按照错误消息的建议并使用bundle exec rspec spec/然后前两个测试通过 – 但是我们在教程中构建的新“about”页面失败并出现以下错误,尽管据我所知我构建的页面(以及控制器操作等)完全符合它们的要求: Failures: 1) PagesController […]

在私有控制器方法中返回redirect_to

前言:我正在使用设计进行身份validation。 我试图阻止未经授权的用户查看,编辑或更新其他用户的信息。 我最关心的是用户将DOM中的表单修改为另一个用户的ID,填写表单,然后单击更新。 我已经专门阅读了下面的内容应该有效,但事实并非如此。 关于SO的post建议将validate_current_user方法移动到公共领域,但这也不起作用。 有什么明显的东西我做错了吗? 或者是否有更好的方法来处理我正在尝试做的事情,无论是使用设计还是其他什么? 我的UsersController看起来像这样: class UsersController [:new, :create, :destroy] before_filter :redirect_guests def index redirect_to current_user unless current_user.try(:admin?) if params[:approved] == “false” @users = User.find_all_by_approved(false) else @users = User.all end end def show @user = User.find(params[:id]) validate_current_user @user end def new @user = User.new end def edit @user = User.find(params[:id]) validate_current_user @user […]