carrierwave,Excon :: Errors :: MovedPermanently in RegistrationsController #update error

我一直试图让carrierwave与amazon s3合作。 代替 storage :s3 我有 storage :fog 将其更改为存储:s3立即出错 https://stackoverflow.com/questions/10629827/carrierwave-cant-convert-nil-into-string-typeerror-when-using-s3 所以我把它改成了存储:像下面的rdoc所说的雾。 http://rubydoc.info/gems/carrierwave/frames 然而,当我尝试上传图像时,我得到了这个疯狂的错误。 我正在使用设计gem。 我的完整堆栈跟踪是 Excon::Errors::MovedPermanently in RegistrationsController#update Excon::Errors::MovedPermanently (Expected(200) Actual(301 Moved Permanently) request => {:connect_timeout=>60, :headers=>{“Content-Length”=>95472, “Content-Type”=>”image/jpeg”, “x-amz-acl”=>”private”, “Cache-Control”=>”max-age=315576000”, “Date”=>”Thu, 17 May 2012 05:28:55 +0000”, “Authorization”=>”AWS AKIAIN6SC3YSGBSUKV4Q:kZOG9mG01jYn48ImFMYbgxAAQRk=”, “Host”=>”user.a.777.s3-eu-west-1.amazonaws.com:443″}, :instrumentor_name=>”excon”, :mock=>false, :read_timeout=>60, :retry_limit=>4, :ssl_ca_file=>”/Users/sasha/.rvm/gems/ruby-1.9.3-p125/gems/excon-0.13.4/data/cacert.pem”, :ssl_verify_peer=>true, :write_timeout=>60, :host=>”user.a.777.s3-eu-west-1.amazonaws.com”, :path=>”/uploads%2Fuser%2Fimage%2F59%2Fidea.jpg”, :port=>”443″, :query=>nil, :scheme=>”https”, :body=>#, :expects=>200, :idempotent=>true, :method=>”PUT”} […]

无法找到已弃用的RAILS_ROOT的位置

当我加载rails( rails s )时,终端中显示的第一行是: DEPRECATION WARNING: RAILS_ROOT is deprecated. Please use ::Rails.root.to_s. (called from /Users/x/Sites/x/config/application.rb:7) 我一直无法隔离使用它的地方。 上面提到的第7行是: Bundler.require(:default, Rails.env) if defined?(Bundler) 有没有人有任何建议?

控制器如何手动设置某个字段的validation错误

我有一个包含3个ActiveRecord字段的表单。 其中一个领域有一些愚蠢的,以及STATE-DEPENDENTvalidation要求。 (例如,如果在安装向导表单上创建对象,我只validation该字段。) 在我的POST处理程序中创建对象,我想我可以调用errors.add来插入一个特殊的错误条件 @foo = Foo.new(params[:foo]) if goofy_conditions(params[:foo][:goofy_field]) @foo.errors.add(:goofy_field, “doesn’t meet the goofy conditions” ) end respond_to do |format| if @foo.save … else … redirect back to form (with error fields hilited) 但是,在控制器中执行@ foo.errors.add()似乎没有做任何事情……如果其他字段通过validation,它不会阻止save()。 另一种方法是将自定义validation处理程序放入模型中……我知道使用errors.add(:field,’msg’)可以正常工作……但在这种情况下,我的控制器如何将’传递’信息传递给validation器告诉它该字段是否需要validation。

从字符串创建seo友好的URL

嘿家伙我正在尝试从字符串创建一个URL友好链接。 而不是example.com/Jessica Alba ,我想要example.com/jessica-alba 如何获取link_to标签以将我链接到seo友好永久链接? 我还需要确保show方法只显示地址栏中的seo友好永久链接,并且只接受seo友好永久链接。

如何向ActiveRecord添加新属性

从模型中获取所有值后,我想向ActiveRecord类添加另一个自定义属性(此属性不是db中的列),以便我可以在视图中使用它,但rails不允许我添加一个。 我应该在其模型类中添加什么? @test.all @test.each do |elm| elm[:newatt] = ‘added string’ end 错误: can’t write unknown attribute `newatt’

从数组中删除空白元素

当我从轨道上保存多个ruby时,它似乎在前面添加了一个空白元素。 我该如何删除它? 该字段是selected_player。 {“utf8″=>”✓”, “authenticity_token”=>”H8W7qPBezubyeU0adnTGZ4oJqYErin1QNz5oK0QV6WY=”, “schedule”=>{“event”=>”1”, “result_id”=>””, “time”=>”26/10/2012”, “duration”=>”15”, “arrival_time”=>”14”, “location_id”=>”25”, “selected_players”=>[“”, “38”, “41”], “team_id”=>”1”, “opponent_id”=>”7”, “home_or_away”=>”Home”}, “commit”=>”Save Event”} 调节器 def update @schedule = Schedule.find(params[:id]) @user = User.find(current_user) @players = User.where(:team_id => current_user[:team_id]).all respond_to do |format| if @schedule.update_attributes(params[:schedule]) Notifier.event_added(@user,@schedule).deliver format.html { redirect_to(@schedule, :notice => “#{event_display_c(@schedule.event)} vs #{@schedule.opponent.name} was successfully updated.”) } format.json { head :no_content […]

Rails 3.1中的授权:CanCan,CanTango,declarative_authorization?

我查看了declarative_authorization,CanCan和CanTango。 他们都善于为应用程序添加授权,但我想知道如何将授权添加到模型的特定实例,即一个人可以在一个项目中拥有管理访问权限并且仅限于(读取少于管理:有限更新等)在另一个。 你能以更好的方式取悦吗? 如果我的问题听起来太微不足道,请道歉。 这可能是因为我是RoR的新手。 谢谢,约翰

rake / rails .save! 没有更新数据库

我试图通过rake任务保存对数据库的更改。 在我的rake任务中,我做了类似的事情: namespace :parts do desc “Update Parts table, swap names in title” task :swap => :environment do Part.swap end end 在我的Part课程中,我做了 def self.swap Part.all.each do |part| if (part.title =~ REGEX) == 0 part.title.gsub! REGEX, ‘\2 \1’ puts part.title part.save! end end end 但是,这并没有保存部分。 save! 确实回归真实。 puts part.title确实返回了我想要的值。 如果我打电话 Part.update(part.id, title: part.title) 数据库正确更新。 为什么是这样? 我在循环中做错了吗? […]

rails 3中的自定义操作

我正在尝试创建一个简单的链接,将我的模型中的“status”属性从“pending”切换为“active”。 例如,当我第一次创建用户时,我将状态设置为“pending”。 然后,当我显示用户列表时,我添加了一个按钮,该按钮应该将该用户的状态更改为“活动”。 我通过自定义操作尝试了这个(这是一个很好的方法吗?)但是我遇到了自动生成的命名路由问题。 在我的用户index.html.haml中: button_to “Manually Activate”, activate_user_path 在routes.rb中: resources :users do get :activate, :on => :member 在users_controller.rb中: def activate @user = User.find(params[:id]) @user.update_attribute(:status, ‘Active’) redirect_to @user end 当我去说/ users / 1 / activate时,这似乎有效,因为状态会更新。 但是,/ users页面不显示并给我错误: ActionController::RoutingError in Users#index No route matches {:action=>”activate”, :controller=>”users”} 即,我在视图中指定的activate_user_path出现问题。 (但是如果我使用另一个我没有在routes.rb中指定的命名路由风格的路径来测试它,我得到了 NameError in Users#index undefined local variable or method […]

对于#<ActiveRecord :: ConnectionAdapters :: MysqlAdapter,未定义的方法`explain'

我是Ruby on Rails的新手,但我已经学过一些教程,并且知道我的方法。 我已经生成了一些脚手架并将数据插入到MySql数据库中。 导航到index.html.erb时,我收到标题中的错误 控制器正在执行索引 def index @beers = Beer.all respond_to do |format| format.html # index.html.erb format.json { render :json => @beers } end end 并将此作为一种结构 Beer: id, brewer_id, name, price, score, color, brew_type, create_at, updated_at RoR正在为我创建的其他脚手架工作,并列出数据。 我更新了实体Beer的mysql结构,它可能没有反映rails的变化(dunno)。 我是否需要一个不同的gem来将rails连接到mysql db? 任何关于检查什么的建议都将受到赞赏(: