获取fields_for和accepts_nested_attributes_for以使用belongs_to关系

我似乎无法使用Rails 2.3的新的accepts_nested_attributes_for工具在rails视图中为belongs_to关系生成嵌套表单。 我确实检查了许多可用的资源,看起来我的代码应该正常工作,但fields_for爆炸了我,我怀疑它与我如何配置嵌套模型有关。 我遇到的错误是一个常见的错误原因: ‘@account[owner]’ is not allowed as an instance variable name 以下是涉及的两个模型: class Account ‘User’, :foreign_key => ‘owner_id’ accepts_nested_attributes_for :owner has_many :users end class User < ActiveRecord::Base belongs_to :account end 也许这就是我在做’rong’的地方,因为帐户可以拥有’所有者’,可能是’用户’,但用户只有一个’帐户’,基于用户模型account_id键。 这是new.html.haml中的视图代码,它炸毁了我: – form_for :account, :url => account_path do |account| = account.text_field :name – account.fields_for :owner do |owner| = owner.text_field :name 这是新操作的控制器代码: class […]

通过与其他属性相关联来创建has_many的Rails表单?

如何为has_many :through生成表单字段has_many :through具有其他属性的关联? has_many :through关系有一个名为weight的附加列。 这是连接表的迁移文件: create_table :users_widgets do |t| t.integer :user_id t.integer :widget_id t.integer :weight t.timestamps end 模型看起来像这样: User has_many :widgets, :through => :users_widgets, :class_name => ‘Widget’, :source => :widget has_many :users_widgets accepts_nested_attributes_for :widgets # not sure if this is necessary Widget has_many :users, :through => :users_widgets, :class_name => ‘User’, :source => :user has_many […]

一元问号(?)运算符有什么作用?

我在HAML代码中看到了这个运算符。 我想知道它是什么。 我看到以下作品: > ?{ => “{” > ?\s => ” ” > ?a => “a” 这不起作用: > ?ab SyntaxError: (irb):4: syntax error, unexpected ‘?’ 所以我认为它需要一个字符作为参数并返回一个带有该字符的字符串。 问题: 这个运营商做什么? 什么时候应该使用它? 如果它真的只创建一个单字符的字符串,为什么它包含在语言中呢? 它不会破坏语言的正交性吗? 有什么好处?

ruby中的音译

在ruby中音译非英语字符的最简单方法是什么? 这是转换,如: translit “Gévry” #=> “Gevry”

从Ruby执行Rspec

我试图从ruby执行rspec,并从方法或类似的东西中获取失败的状态或数量。 其实我正在运行这样的事情: system(“rspec ‘myfilepath'”) 但我只能得到函数返回的字符串。 有没有办法直接使用对象?

四舍五入到最接近的十分之一?

我需要四舍五入到最接近的十分之一。 我需要的是ceil但精确到小数点后第一位。 例子: 10.38 would be 10.4 10.31 would be 10.4 10.4 would be 10.4 因此,如果它是超过十分之一的任何数量,它应该被四舍五入。 我正在运行Ruby 1.8.7。

selenium 2.4.0,如何检查是否存在警报

在使用selenium 2.4.0之前,我有以下代码: alert = page.driver.browser.switch_to.alert if alert.text …. end Selenium 2.4.0包含更改“*当没有警报时在switch_to.alert中提升。”,所以我得到一个No alert is present (Selenium::WebDriver::Error::NoAlertOpenError)exception。 如何使用selenium-web-driver 2.4.0检查是否存在警报?

项目Euler 1:找到1000或以下3或5的所有倍数的总和

我试图用Project Euler解决Ruby中的数学问题。 这是我尝试过的第一个: 如果我们列出10以下的所有自然数是3或5的倍数,我们得到3,5,6和9.这些倍数的总和是23。 求出1000以下3或5的所有倍数的总和。 请帮我改进我的代码。 total = 0 (0…1000).each do |i| total += i if (i%3 == 0 || i%5 == 0) end puts total

无法使用Ruby 1.9.3在RubyMine 4.5中进行调试

我对问题的长度表示道歉,但我想说清楚我没有犯任何愚蠢的错误! 所以,我很难使用Ruby 1.9.3在RubyMine 4.5中进行调试,我的步骤如下: 新鲜(即已删除所有以前的ruby和gem目录)安装Ruby 1.9.3,Ruby Gems,DevKit和Rails(遵循本指南 ) – 工作正常。 然后我尝试开始使用我的团队的ruby代码。 我在RubyMine中打开目录(首先记住删除.idea目录)并提示我按照要求运行bundle install (从控制台)。 这成功完成。 重启RubyMine。 然后我确保Ruby正在工作:工具> IRB控制台> #test => nil puts “test” #test => nil – Works我现在尝试调试器( SHIFT + F9 )并看到消息: The gem ruby-debug-base19x required by the debugger is currently not installed. Would you like to install it?” 我点击取消并检查我的Gemfile,唯一与调试相关的是: # Debugging gem ‘debugger’ #gem […]

Ruby on Rails – 从模型访问控制器变量

我试图访问在模型中的控制器中设置的实例变量。 控制器是产品控制器,型号是产品型号。 实例变量是另一个名为account的模型的实例。 实例变量是@current_account 当我运行代码没有任何反应时,我没有收到错误。 有谁知道在哪里可以找到关于模型中控制器中设置的访问实例变量的内容? 谢谢 EEF