Tag: ruby on rails

validation失败:上传文件的扩展名与其内容不匹配

我正在使用paperclip gem上传文件。 我的回形针gem版是paperclip-4.1.1。 在上传文件时抛出 Validation failed: Upload file has an extension that does not match its contents. 我正在尝试上传xlsx文件。 而且我已经在模型中提到了content_type。 validates_attachment_content_type :upload_file, :content_type => %w(application/msword application/vnd.ms-office application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet), :message => ‘, Only XML,EXCEL files are allowed. ‘ 我不知道为什么会发生这种错误。 如果您对此错误有任何疑问,请分享。 摘自日志以显示validation失败: Command :: file -b –mime-type ‘/tmp/5249540099071db4e41e119388e9dd6220140513-24023-1jlg4zy’ [paperclip] Content Type Spoof: Filename file_for_bulk_upload1.xlsx ([“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”]), content type discovered […]

阻止Rails测试删除种子数据

我使用seeds.rb来填充一些状态模型参考数据: State.create :name => ‘Alabama’, :abbreviation => ‘AL’ State.create :name => ‘Alaska’, :abbreviation => ‘AK’ # … 虽然我没有使用状态装置(因为它的种子数据开始,我认为不必为了测试而必须复制它),Rails测试框架似乎在测试期间删除了所有状态种子数据。 (我正在删除,重新创建,迁移和重新安装测试数据库,并在unit testing运行之前确认数据存在。) 结果是这个断言在seeds.rb中成功但在一行测试中失败: assert_equal 51, State.all.size 1) Failure: test_state_seeds_are_present(StateTest) [/test/unit/state_test.rb:24]: expected but was . 1 tests, 1 assertions, 1 failures, 0 errors 我已经尝试在基本测试类fixtures语句中明确列出非状态模型,以及翻转事务fixtures标志(正如预期的那样,这只会影响测试期间创建的记录)。 当然,正在考虑的测试本身并不删除这些记录。 始终删除州记录。 有没有办法告诉Rails只是脱掉种子数据? 我是否需要复制灯具中的所有数据以确保它重新加载? 如果没有重大政治事件,我预计州的数据会相对稳定。 TIA

如何在rails中使用变量作为对象属性?

我有一个带有属性’home_address_country’的PaymentDetail模型,所以我可以使用 @payment_detail.home_address_country //where @payment_detail is object of that model. 我想用这样的东西:— country_attribute=address_type+”_address_country” //where address type is equal to ‘home’ @payment_detail.”#{country_attribute}” 均值属性名称存储在变量中。 我怎样才能做到这一点? 编辑 country_attribute=address_type+”_address_country” country_list=Carmen::country_names eval(“@#{country_attribute} = #{country_list}”)

设计回电

当用户登录和退出时,设计是否有回叫? 这就是我提出的: Warden::Manager.after_authentication do |user,auth,opts| user.update_attribute(:currently_signed_in, true) end Warden::Manager.before_logout do |user,auth,opts| user.update_attribute(:currently_signed_in, false) end 这就是我跟踪当前登录用户的方法。

Rails 3.1和Ruby 1.9.3p125:ruby-debug19仍然崩溃,“未找到符号:_ruby_threadptr_data_type”

可能重复: 使用Ruby 1.9.3进行ruby-debug? 我听说有关ruby 1.9.3p125有解决ruby-debug19问题的传言,所以根据RVM网站上的说明,我重新安装了1.9.3: $ rvm reinstall 1.9.3 –patch debug –force-autoconf $ ruby -v ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.2.0] 然后: gem install ruby-debug19 将此条目添加到我的Gemfile: gem ‘ruby-debug19’ 然后: $ rails server -u => Booting WEBrick => Rails 3.1.3 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown […]

无法安装pg gem,“mkmf.rb无法找到ruby的头文件”(Mac OSX 10.6.5)

我刚刚升级到Rails 3,并对MacPorts,gem和数据库进行了一些混乱。 我扔掉了所有的gem并将它们安装得很新鲜。 除了pg gem的要求外,一切似乎都没问题。 在为PostgreSQL创建一个新的Rails 3项目后,服务器无法启动,抱怨丢失的pg gem。 做bundle install ,它会拖延一段时间,当然,在pg gem上失败了。 Installing pg (0.10.0) with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions’: ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb can’t find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.10.0 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.10.0/ext/gem_make.out from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `each’ […]

为什么我在运行webrick服务器时会得到未初始化的常量设计名称错误?

在我的应用程序中,我使用了ruby 1.9.2和rails 3.0.3并且还安装了Devise gem。问题在我运行Webrick服务器时开始我得到未初始化的常量设计名称错误。 /home/app/Workspace/project/Library_Management/Library_Management/config/initializers/devise.rb:3:in `’: uninitialized constant Devise (NameError) from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/engine.rb:201:in `block (2 levels) in ‘ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/engine.rb:200:in `each’ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/engine.rb:200:in `block in ‘ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec’ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run’ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `block in run_initializers’ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each’ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers’ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!’ from /home/app/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing’ from /home/app/Workspace/project/Library_Management/Library_Management/config/environment.rb:5:in `’ from /home/app/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require’ from […]

rails中的嵌套表单 – 访问has_many关系中的属性

我有一个用户和个人资料模型。 一个用户可以拥有许多配置文件 在用户创建过程中,我只需要在我的用户模型中访问配置文件部分中的一个信息(即电话号码)。 因此,我试图通过attr_accessible完成它。 我的user.rb看起来像这样。 has_many :profiles attr_accessible :handle, :email, :password, :profile_mobile_number attr_accessor : :profile_mobile_number 我面临的问题是,当我尝试在user.rb中的方法中调用getter方法profile_mobile_number时(该方法是私有的,虽然我认为无关紧要),但我得到一个空值。 我在users / new.html.erb表单中使用以下内容 我的问题是这样做的正确方法是什么? 我应该使用 或 (注意第二个是复数)。 当我使用复数:配置文件时,我甚至看不到表单上的字段。 我在这里想念的是什么? 什么是需要在模型user.rb中使用的时态? :profile_phone_number或:profiles_phone_number? 谢谢。

尝试在RoR应用程序中发送电子邮件时遇到SMTP错误

我一直在拼命尝试使用RoR中的Action Mailer类发送电子邮件,即使终端显示正在发送消息,它仍然会返回此错误: et::SMTPAuthenticationError: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbtOS from /Users/abhasarya/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:968:in `check_auth_response' from /Users/abhasarya/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:739:in `auth_plain' from /Users/abhasarya/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:731:in `authenticate'… 这是我的邮件程序类在app / mailers / my_mailer.rb中的样子: class MyMailer < ActionMailer::Base default from: "from@example.com" def welcome_email(user) @user = user mail(to: user.email, from: 'example_email@gmail.com', subject: 'Welcome!') end end 这是我的config / application.rb文件的样子: config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address: ‘smtp.gmail.com’, port: 587, #domain: ‘gmail.com’, user_name: […]

运行rails app时出错 – ExecJS :: RuntimeError

我试过谷歌搜索,我还没有找到答案我的问题。 我试图通过rails运行一个简单的控制器脚本,当我到达页面时它给了我这个错误。 ExecJS::RuntimeError in Say#hello 显然Say是控制器,hello是方法。 在页面的下方,我获得了有关错误的更多信息。 dyld: unknown required load command 0x80000022 (in /Users/JoeMoe/Sites/demoRails/app/assets/javascripts/say.js.coffee) 我已经检查了这个文件,除了注释代码之外没有任何内容。 那里应该有什么东西吗? 这是say.js.coffee文件中的内容 # Place all the behaviors and hooks related to the matching controller here. # All this logic will automatically be available in application.js. # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ 在页面下面我看到我可以做一个显示我的应用程序跟踪。 app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__169683399_21885150′ 我也可以做框架跟踪。 顺便说一句,这将是一个很长的清单。 […]