Tag: ruby on rails 3.2

让fields_for使用has_many关系

我在生成嵌套模型表单时遇到问题。 这是我的模特: class Workout :scores accepts_nested_attributes_for :scores end class Score < ActiveRecord::Base belongs_to :user belongs_to :workout end class User :scores end 在Workout控制器中,这是我对新操作的所有内容: def new @workout = Workout.new 3.times { @workout.scores.build } respond_to do |format| format.html # new.html.erb format.json { render json: @wod } end end 但是,在表单中,当我尝试fields_for时,我什么都没得到: 我究竟做错了什么?

在开发模式下没有获得视图错误的调试输出

这很奇怪。 目前,我在视图中有某种错误,但看不出它是什么。 此外,Web服务器跟踪中没有调试输出。 Rails 3.2.2应用程序是2.7.10的升级,我使用“瘦”作为我的开发服务器。 当其他地方发生错误时,我会得到正常的调试输出。 编辑:我正在运行开发,你可以在这里看到: => Booting Thin => Rails 3.2.2 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server >> Thin web server (v1.3.1 codename Triple Espresso) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:3000, CTRL+C to stop 编辑:我可以通过在控制器中引发exception来复制此行为。

如何序列化 – 反序列化params哈希对象?

我怎么做这样的事情? 我希望能够将params对象存储到模型的字符串属性中,并且能够将其反序列化为params散列对象,我将如何在ruby中执行此操作? 或者铁轨中是否有开箱即用的解决方案?

动态选择带有祖先

我的应用程序使用祖先gem。 class Location true has_many :posts end class User < ActiveRecord::Base belongs_to :location end 我创建了一些随机位置, 阿拉斯加州 加州 洛杉矶 弗雷斯诺 Cincotta(弗雷斯诺) 哈蒙德(弗雷斯诺) 梅尔文(弗雷斯诺) 我的问题是,如果用户选择加州,用户注册表格,显示孩子洛杉矶和弗雷斯诺,选择弗雷斯诺后,然后显示它的孩子。 我获得了下拉列表的http://www.avascript2net.com/javascript_tutorial/dropdown-list-demo.php的 javascript教程 如何使用祖先gem ?

如何将Rails应用程序从2.3.5升级到3.2.x?

我有Rails 2.3.5应用程序,我想升级到3.2.x. 如何升级到Rails 3.2.x? 谢谢

移动到生产时错误预编译资产

我正在尝试将我的项目转移到生产中, 尝试去 RAILS_ENV=production bundle exec rake assets:precompile 给我一个错误,没有指定它是在哪个文件中。 rake aborted! Sass::SyntaxError: Invalid CSS after “}”: expected selector or at-rule, was “}” (sass):89 /Users/mac/.rvm/gems/ruby-2.2.3/gems/sass-3.4.23/lib/sass/scss/parser.rb:1207:in `expected’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sass-3.4.23/lib/sass/scss/parser.rb:1137:in `expected’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sass-3.4.23/lib/sass/scss/parser.rb:42:in `parse’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sass-3.4.23/lib/sass/engine.rb:406:in `_to_tree’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sass-3.4.23/lib/sass/engine.rb:281:in `render’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sprockets-3.7.1/lib/sprockets/sass_compressor.rb:48:in `call’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sprockets-3.7.1/lib/sprockets/sass_compressor.rb:28:in `call’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sprockets-3.7.1/lib/sprockets/processor_utils.rb:75:in `call_processor’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sprockets-3.7.1/lib/sprockets/processor_utils.rb:57:in `block in call_processors’ /Users/mac/.rvm/gems/ruby-2.2.3/gems/sprockets-3.7.1/lib/sprockets/processor_utils.rb:56:in `reverse_each’ 如何找出发生错误的文件? 即使有–trace也没告诉我。

嵌套模型表单 – Railscast#196修订 – 通过jQuery添加字段无法正常工作

我正在遵循Railscast#196修订版 ,一切都基本上没问题,但我无法在嵌套表单中添加新字段。 “删除字段”function运行良好,但点击“link_to_add_fields”后,浏览器会跳转到页面顶部,并且不会显示新字段。 这个轨道广播已经有很多问题了,比如这里或这里 ,我试着阅读所有这些问题,但大多数是指2010年的原始演员。我现在被困了几个小时,我不能弄清楚,我的问题在哪里。 对不起,如果它是一个新手的错误,我对rails很新。 任何帮助将非常感激! 我使用Rails 3.2.13,Ruby 1.9.3来遵循#196修订版 车型/ post.rb class Post :destroy accepts_nested_attributes_for :postfiles, allow_destroy: true end 车型/ postfile.rb class Postfile < ActiveRecord::Base attr_accessible :dropbox, :gdrive, :post_id belongs_to :post end 意见/职位/ _form.html.erb 意见/职位/ _postfile_fields.html.erb postfiles.js.coffee jQuery -> $(‘form’).on ‘click’, ‘.remove_fields’, (event) -> $(this).prev(‘input[type=hidden]’).val(‘1’) $(this).closest(‘fieldset’).hide() event.preventDefault() $(‘form’).on ‘click’, ‘.add_fields’, (event) -> time = […]

未定义的方法`key?’ 为零:NilClass

我是Rails的新手,正在关注Ryan Bate关于如何制作一个简单的身份validation系统的教程( http://railscasts.com/episodes/250-authentication-from-scratch?autoplay=true )我正在经历它但得到了这个错误:` NoMethodError in UsersController#new undefined method `key?’ for nil:NilClass Rails.root: C:/Sites/authentication` 我真的不知道这意味着什么,因为我只是一个初学者,但这些是我的文件: 用户控制器: class UsersController “Signed up!” else render “new” end end end new.html.erb: Form is invalid 的routes.rb Authentication::Application.routes.draw do get “sign_up” => “users#new”, :as => “sign_up” root :to => “users#new” resources :users end 用户模型 class User create validates_presence_of :email validates_uniqueness_of :email […]

将局部变量传递给已加载视图后呈现的局部变量

更新:我刚刚发现这个其他线程解释了为什么我遇到这个问题(将本地rails变量传递给javascript到部分 ),但它没有列出修复它的步骤(或者至少它跳过了太多的步骤,我不知道我还不知道怎么办。)问题似乎是传递给partial的局部变量不再是加载new.html.erb时存在的同一局部变量,因为在click事件之前没有加载partial 。 有可能解决这个问题吗? 谢谢。 原版的: 我有一个点击事件绑定到一个链接只能在某些时间工作,我不知道为什么。 在没有重新加载页面的情况下单击链接时,应该将部分渲染到我的视图中。 这是我目前拥有的(不起作用): comps_helper.rb: def addRound(f) render “add_round”, f: f end 谱曲/ new.html.erb addRoundLink.js.erb $(“#add_round”).html(“”); 什么工作: 如果我直接使用从new.html.erb调用helper方法,它就可以工作。 但是我需要在单击链接时触发它,以便用户可以根据需要向表单添加任意数量的部分。 如果上面的代码中没有包含’f’参数,那么javascript确实可以用于点击。 例如,如果我更改局部因此它只包含一个文本字符串,它将在单击链接时呈现该文本。 这让我觉得我在javascript中包含’f’参数的方式存在问题。 但是我不确定为什么会这样,因为不是javascript只是将代码插回到new.html.erb中,其中我的div有“add_round”id? 注意:这是我在单击链接时在javascript控制台中看到的内容:GET http //0.0.0.0:3000/addRoundLink 500(内部服务器错误) 的jquery.js:8215 谢谢。

在Rails中,如何使用accepts_nested_attributes_for创建嵌套对象?

在我的Rails应用程序中,我正在尝试为TrainingClass模型设置创建表单。 我希望此表单允许用户在同一表单中创建多个ClassMeeting模型(与TrainingClass模型具有belongs_to关系),并且我使用accepts_nested_attributes_for来执行此操作。 不幸的是,每当我提交表单时,我都会收到错误消息: Meetings class can’t be blank 。 我意识到这是因为ClassMeeting已经validates :class_id, presence: true ,并且因为TrainingClass在保存之前不能拥有id,但是我不确定是否有正确的方法来解决这个问题。 (我可以想到几种可能的方法,但它们并不是完全优雅的解决方案。)任何想法? 我很感激你能给我的任何帮助。 注意:我发现过去有很多类似的问题。 但是,大多数问题都是陈旧的,并且已经过时了,而且没有一个能解决我的问题。 这是我的代码。 请记住,虽然为简洁起见,我简化了它的某些方面,但ClassMeeting和TrainingClass模型之间的关系保持不变: ClassMeeting模型: # == Schema Information # # Table name: class_meetings # # id :integer not null, primary key # class_id :integer # start :datetime # end :datetime # location :string(255) # created_at :datetime not null […]