小编Ada*_*sek的帖子

这段代码如何抛出ActiveRecord :: ReadOnlyRecord异常?

我有一个购买模型的has_one 优惠券.

购买模型包含以下代码:

def decrement_coupon
  coupon = Coupon.find_by_code(coupon_code, :readonly => false)
  return unless coupon.respond_to?(:uses)
  coupon.uses = coupon.uses - 1
  coupon.save
end
Run Code Online (Sandbox Code Playgroud)

但是前几天我收到了这个错误:

ActiveRecord::ReadOnlyRecord - ActiveRecord::ReadOnlyRecord:
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/persistence.rb:245:in `create_or_update'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/callbacks.rb:273:in `create_or_update'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activesupport-3.0.6/lib/active_support/callbacks.rb:419:in `_run_save_callbacks'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/callbacks.rb:273:in `create_or_update'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/persistence.rb:39:in `save'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/validations.rb:43:in `save'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/attribute_methods/dirty.rb:21:in `save'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/transactions.rb:240:in `save'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/transactions.rb:292:in `with_transaction_returning_status'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in `transaction'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/transactions.rb:207:in `transaction'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/transactions.rb:290:in `with_transaction_returning_status'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/transactions.rb:240:in `save'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/transactions.rb:251:in `rollback_active_record_state!'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/transactions.rb:239:in `save'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/associations/association_proxy.rb:222:in `send'
 /usr/local/rvm/gems/ree-1.8.7-2010.02@lyconic/gems/activerecord-3.0.6/lib/active_record/associations/association_proxy.rb:222:in `method_missing'
 /var/www/88tactical_production/releases/20110823232510/app/models/purchase.rb:69:in `decrement_coupon'
Run Code Online (Sandbox Code Playgroud)

:readonly => false不能保证一个非只读记录?将此功能移至优惠券模型会有所作为吗?(无论如何,我可能会这样做)

activerecord ruby-on-rails readonly ruby-on-rails-3

4
推荐指数
1
解决办法
4321
查看次数

如何优化此代码?

当然,必须有很多方法来优化以下代码,我必须确保很多文本框都不是空的,然后读取它们的值:

if (foo1.Text.Length != 0 & bar1.Text.Length != 0)
{
    output.Text += myStrings[i] + " / " + foo1.Text + " / " + bar1.Text;
}

if (foo2.Text.Length != 0 & bar2.Text.Length != 0)
{
    output.Text += myStrings[i] + " / " + foo2.Text + " / " + bar2.Text;
}

if (foo3.Text.Length != 0 & bar3.Text.Length != 0)
{
    output.Text += myStrings[i] + " / " + foo3.Text + " / " + bar3.Text;
}

if (foo4.Text.Length != 0 …
Run Code Online (Sandbox Code Playgroud)

c# optimization

3
推荐指数
2
解决办法
421
查看次数

Rails中的双向多态连接模型?

我正在开发一个多站点CMS,它具有站点间交叉发布的概念.几种类型的内容(文章,事件,Bios等)可以与许多网站相关联,而网站可以包含许多内容.内容片段和站点之间的多对多关联还必须支持每个相关内容项的一些共同属性 - 站点起源的概念(这是内容出现的原始站点吗?)以及概念给定关联网站上给定内容的"主要"和"次要"内容状态.

我的想法是创建一个名为ContentAssociation的多态连接模型,但是我很难让多态关联按照我的预期行事,而且我想知道我是否会这样做是错的.

这是我对连接表和模型的设置:

create_table "content_associations", :force => true do |t|
  t.string   "associable_type"
  t.integer  "associable_id"
  t.integer  "site_id"
  t.boolean  "primary_eligible"
  t.boolean  "secondary_eligible"
  t.boolean  "originating_site"
  t.datetime "created_at"
  t.datetime "updated_at"
end

class ContentAssociation < ActiveRecord::Base
  belongs_to :site
  belongs_to :associable, :polymorphic => true
  belongs_to :primary_site, :class_name => "Site", :foreign_key => "site_id" 
  belongs_to :secondary_site, :class_name => "Site", :foreign_key => "site_id"
  belongs_to :originating_site, :class_name => "Site", :foreign_key => "site_id"
end

class Site < ActiveRecord::Base
  has_many :content_associations, :dependent => :destroy 
  has_many :articles, :through => :content_associations, :source …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails polymorphic-associations ruby-on-rails-3

3
推荐指数
1
解决办法
2498
查看次数

输出与轨道3形成json

我使用rails 3.0.3

javascript自动完成需要这样的数据

{
 query:'Li',
 suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'],
 data:['LR','LY','LI','LT']
}
Run Code Online (Sandbox Code Playgroud)

我的行动是

  def autocomplete
    @query = params[:query]
    @customers = Customer.where('firstname like ?', "%#{@query}%")
    render :partial => "customers/autocomplete.json"
  end
Run Code Online (Sandbox Code Playgroud)

我的观点是

{
    query:'<%= @query %>',
    suggestions: <%= raw @customers.map{|c| "#{c.firstname} #{c.lastname}" } %>,
    data: <%= raw @customers.to_json %>
}
Run Code Online (Sandbox Code Playgroud)

它返回

{
    query:'e',
    suggestions: ["customer 1", "customer 2"],
    data: [1, 3]
}
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为建议/数据的数据应该在简单引用之间......

我不能使用to_json方法,因为它将返回我的对象​​的所有内容.

有什么建议吗?

干杯

serialization json ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
5524
查看次数

你如何应对Rails迁移中的变化?

假设我开始使用这个模型:

class Location < ActiveRecord::Base
  attr_accessible :company_name, :location_name
end
Run Code Online (Sandbox Code Playgroud)

现在我想将其中一个值重构为关联模型.

class CreateCompanies < ActiveRecord::Migration
  def self.up
    create_table :companies do |t|
      t.string :name, :null => false
      t.timestamps
    end

    add_column :locations, :company_id, :integer, :null => false
  end

  def self.down
    drop_table :companies
    remove_column :locations, :company_id
  end
end

class Location < ActiveRecord::Base
  attr_accessible :location_name
  belongs_to :company
end

class Company < ActiveRecord::Base
  has_many :locations
end
Run Code Online (Sandbox Code Playgroud)

这一切在开发过程中都很好,因为我一步一步都做得很好; 但如果我尝试将其部署到我的临时环境中,我就会遇到麻烦.

问题是,由于我的代码已经更改以反映迁移,因此在尝试运行迁移时会导致环境崩溃.

还有其他人处理过这个问题吗?我是否已经辞职将我的部署分成多个步骤?

更新似乎我错了; 在迁移同事的环境时,我们遇到了麻烦,但暂存更新没有问题.Mea Culpa.我会将@ noodl的回复标记为埋葬这个的答案,无论如何,他的帖子都是好建议.

migration ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
520
查看次数

使用Sql Server数据库文件(mdf)构建应用程序是一个糟糕的主意吗?

我正在开发一个侧面项目,它将是一个简单的Web应用程序,用于维护类列表及其即将到来的日程安排.

我真的很想在这个项目中使用Linq to SQL,但不幸的是我正在开发的服务器环境只有MySql可用.我已经简单介绍了Subsonic,但它只是没有完成工作.

但是,这个应用程序的数据库要求并不是那么好,所以我很好奇在App_Data中使用MDF文件是否可行.否则,似乎我将不得不手动编写我想要不惜一切代价避免的SQL查询.

mysql sql sql-server asp.net

2
推荐指数
1
解决办法
1857
查看次数

如何在Web浏览器控件中模拟单击事件?。净

因此,接下来有一个按钮调用(页面)。其href链接为site / blah /#。所以我知道它真正运行的javascript代码。在我解析完第一页之后,我想解析下一页。如何模拟在那里的鼠标单击,以便继续加载和解析页面?

我正在使用C#.NET

c# asp.net webbrowser-control

2
推荐指数
1
解决办法
7860
查看次数

使用LINQ从List <Customers>中提取结果

我有一个客户列表

List<Customers> cust = new List<Customers>();
cust.Add(new Customers(){ID=1, Name="Sam", PurchaseDate=DateTime.Parse("01/12/2008")});
cust.Add(new Customers(){ID=2, Name="Lolly" PurchaseDate=DateTime.Parse("03/18/2008")});
Run Code Online (Sandbox Code Playgroud)

我想显示2个单独的结果,如:

客户在Yr中购买//按年份分组并显示ID,名称
按客户购买年份 - 月份//按年份分组然后按月份和显示ID,名称

如果我想订购年份怎么办?

更新:

再补充一点.如果我在Customer类中有一个名为"Status"的字段,其中任何一个值为'Y','N','C'代表yes,no和取消我将如何创建一个查询以给出%的比率

Y - 20%N - 30%C - 50%

.net c# linq

0
推荐指数
1
解决办法
388
查看次数

多个 LIKE 与 Arel 和 MetaWhere 匹配

我写的过渡中的Rails 2.3的应用程序SearchLogic到Rails的3.0阿雷尔和MetaWhere,我快到的操作,我不知道怎么写。

旧代码是:

if params[:city] && params[:city].respond_to?(:each)
  users = users.person_address_city_like_any(params[:city])
end
Run Code Online (Sandbox Code Playgroud)

这样做是LIKE对 params[:city] 数组中的每个项目进行匹配。

当只有一个搜索词时,这在 MetaWhere 中很容易:

users = users.where(:person => { :address => { :city.matches => '%city1%' } })
Run Code Online (Sandbox Code Playgroud)

但是我将如何用任意数量的城市来写这个?

ruby-on-rails searchlogic arel meta-where ruby-on-rails-3

0
推荐指数
1
解决办法
2082
查看次数