Tag: ruby on rails 3

无法构建gem原生扩展(mkmf(LoadError)) – Ubuntu 12.04

嘿,我正在尝试在新的ubuntu机器上安装rails。 我安装了ruby和rvm但是我收到了“未能构建gem native扩展”的错误。 这是什么意思? $ sudo gem install rails -v 3.2.9 (没有sudo说我没有权限) 然后它输出了很多’抓取’命令,最终输出了这个错误: Building native extensions. This could take a while… ERROR: Error installing rails: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’: cannot load such file — mkmf (LoadError) from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’ from extconf.rb:1:in `’ Gem files will remain installed in […]

在Rails 3中使用current_page时“没有路由匹配”

使用current_page时有没有人经历过神秘的路径? 在Rails 3? 即使完全生成的脚手架配有路线,视图和控制器,我也会收到“无路由匹配”错误。 这是代码: if current_page?(:controller => ‘users’, :action => “show”) 如果我向routes.rb添加“match”命令,它可以正常工作,但是如果已经创建了资源,为什么还需要这样做呢? 我错过了什么?

rails3中的远程form_tag没有命名路由

什么是使这个实际上异步发布的正确咒语? form_tag :controller => :magic, :action => :search, :method => post, :remote => true do method = post和remote = true只是在url的末尾被压扁而不是实际上使它成为ajaxpost。

在gemfile中使用“:platforms =>”工作吗?

我有一个Rails应用程序,我正在Windows上开发并部署到Linux。 我怀疑我将来会完全切换到Linux。 无论如何,在Linux上我需要’execjs’和’therubyracer’,但我不需要Win7中的那些。 所以我将这些行放在我的gemfile中: gem ‘therubyracer’, :platforms => :ruby gem ‘execjs’, :platforms => :ruby 在Linux VM上运行bundle install ,应用程序启动正常。 但在Windows上我得到: Uncaught exception: Could not find execjs-1.2.11 in any of the sources 现在,根据我的阅读( 这里在PLATFORMS下),它告诉我“如果一个gem只能用于特定平台或一组平台,你可以指定它们”,样本是这样的: gem “weakling”, :platforms => :jruby 它说“ ruby C Ruby (MRI) or Rubinius, but NOT Windows ”。 所以对我来说,捆绑者应该忽略Windows上的execjs行。 但是在Windows上运行bundle install我看到了这个: Installing execjs (1.2.11) 所以这对我说我错过了关于docs的东西,或者bundler忽略了platform命令。 […]

我想覆盖devise gem的authenticate_user和current_user方法

我想覆盖authenticate_user! 和我的应用程序控制器中的devise gem的current_user方法可以请你帮我解决这个问题

Rails SQL查询构建器…或ActiveRecord查询构建器

我需要像运行sql查询一样 sql = ‘SELECT * FROM users WHERE id != ‘ + self.id.to_s + ‘ AND id NOT IN (SELECT artner_id FROM encounters WHERE user_id = ‘ + self.id.to_s + ‘)’ sql += ‘ AND id NOT IN (SELECT user_id FROM encounters WHERE partner_id = ‘ + self.id.to_s + ‘ AND predisposition = ‘ + […]

Rails:Hash#to_param的对面

如果我将哈希转换为查询字符串,我该如何将其转换回来? {:filters => {:colour => [‘Red’, ‘Blue’], :size => ‘Medium’}}.to_param => “filters[colour][]=Red&filters[colour][]=Blue&filters[size]=Medium” Rails在填充params哈希时会自动执行此操作,但是可以直接调用此方法吗? 谢谢。

Ruby on Rails似乎是自动转义由link_to创建的html

这是我的代码,我试图用句子forms显示一个bboy的船员链接列表.to_sentence 0)%> 1) then “Crew”.pluralize else “Crew” end %>: Independent 我得到的输出是正确的链接,但它显示为: Hustle Kidz and Knuckleheads Cali 而不是: Hustle Kidz和Knuckleheads Cali 与html转义,而不是所需的链接。 我错过了什么吗? 我尝试过CGI.unescapeHTML和其他一些但是迷路了……

rails在保存之前删除非数字值

我已经搜索了,看起来这应该很简单,但我无法让它工作。 我想在保存电话号码之前删除所有非数字字符。 这就是我目前所拥有的: before_save { |workorder| workorder.phonenumber = phonenumber.to_s.gsub(/\D/, ”).to_i } 因此,如果用户输入 925-555-5555 它应该保存9255555555,但它实际上只保存了925并且忽略了之后的所有内容 我也尝试过: before_save { |workorder| workorder.phonenumber = phonenumber.to_s.gsub(/[^0-9]/, “”).to_i } 结果相同。 解决了: def raw_phonenumber self.phonenumber end def raw_phonenumber=(s) self.phonenumber=s.gsub(/\D/, ”) end

控制器无法检测到Ajax请求

我正在使用simple_form gem并生成我指定remote:true选项的表单,如下所示: 因此,表单的输出html是以下片段: … 在我检查时,使用标准的form_for帮助程序是在使用remote:true选项时将data-remote =’true’添加到表单中。 从生成的html中可以看出,当我使用simple_form gem时,也有这样的属性。 所以,在我的控制器中我有: def create @webinar = Webinar.new(params[:webinar]) respond_to do |format| if @webinar.save format.html { redirect_to @webinar, notice: ‘Webinar was successfully created.’ } format.js format.json { render json: @webinar, status: :created, location: @webinar } else format.html { render action: “new” } format.json { render json: @webinar.errors, status: :unprocessable_entity } […]