我有两个模型,用户和促销活动.这个想法是促销可以有很多用户,用户可以有很多促销.
class User < ActiveRecord::Base
has_and_belongs_to_many :promotions
end
class Promotion < ActiveRecord::Base
has_and_belongs_to_many :users
end
Run Code Online (Sandbox Code Playgroud)
我还有一个promotion_users表/模型,没有自己的id.它引用了user_id和promotions_id
class PromotionsUsers < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
那么,如何将用户添加到促销中?我尝试过这样的事情:
user = User.find(params[:id])
promotion = Promotion.find(params[:promo_id])
promo = user.promotions.new(promo)
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
NoMethodError: undefined method `stringify_keys!' for #<Promotion:0x10514d420>
Run Code Online (Sandbox Code Playgroud)
如果我尝试这一行:promo = user.promotions.new(promo.id)
我收到此错误:
TypeError: can't dup Fixnum
Run Code Online (Sandbox Code Playgroud)
我确信我的问题有一个非常简单的解决方案,而我只是没有以正确的方式寻找解决方案.
我正在尝试使用我的tumblr feed中的X条目填充页面,我想知道如何只从它返回的JSON对象中提取该X数字.
这是我的代码,从另一个Stack Overflow帖子中提取并修改:
//Tumblr retrieval
$.getJSON("http://tumblr-address/api/read/json?callback=?",
function(data) {
$.each(data.posts, function(i,posts){
var title = this["regular-title"];
var type = this.type;
var date = this.date;
var url = this["url-with-slug"];
$('#sideRail ol').prepend('<li><p><a href=' +url +'>' + title + '</a></p><p>' + date + '</p></li>');
});
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用带有计数器的while循环,但它只是重复所有X次,然后再转到列表中的下一个项目.
谢谢你的帮助.
我需要更新大量记录中的单个字段.通常,我只是从控制台运行快速SQL更新语句并完成它,但这是一个最终用户需要能够在此应用程序中运行的实用程序.
所以,这是我的代码:
users = User.find(:all, :select => 'id, flag')
users.each do |u|
u.flag = false
u.save
end
Run Code Online (Sandbox Code Playgroud)
我担心随着用户数量的增加,这只需要一段时间(目前大约在35k左右,每周增加2-5k).有更快的方法吗?
谢谢!