我在返回单个对象的模型上有where操作.但我似乎无法在对象表示法中使用它(它似乎返回一个对象为[0]的数组).
store = Store.where("some_id = ?", some_id)
puts store.name # doesn't work
puts store # shows array with the object at [0]
Run Code Online (Sandbox Code Playgroud) 我有一个嵌套的表单categories,stores并在商店模型中将其列为attr_accessible.但仍然会收到以下错误:
WARNING: Can't mass-assign protected attributes: category_ids
Run Code Online (Sandbox Code Playgroud)
我已经尝试了商店模型中attr_accessible的所有变体:
attr_accessible :categories
attr_accessible :category
attr_accessible :category_id
attr_accessible :category_ids
Run Code Online (Sandbox Code Playgroud)
他们都没有工作!这两个模型都是has_and_belongs_to_many(并且有一个名为categories_stores的连接表).
任何建议都会非常感激(我已经把头撞到墙上两天了).
UPDATE
我已经实现了一个临时修复(这非常冗余,如果rails只是坚持上述问题则不需要).我通过覆盖createActiveAdmin 的方法并循环插入关联数据来修复它:
controller do
def update
@store = store.find(params[:id])
if @store.update_attributes(params[:store])
@store.categories.delete_all
params[:store][:category_ids].each do |category_id|
@store.categories << Category.find(category_id) unless category_id.blank?
end
redirect_to :action => :index
else
redirect_to :action => :edit, :notice => "Something f'ed up"
end
end
end
Run Code Online (Sandbox Code Playgroud) 在RoR 3.1中,"validates"仍无法在模型中设置默认值.还是有吗?如果没有,设置默认值的最佳方法是什么?
是否有更简单的方法来编写这个ruby代码:
if @canonical_url
@canonical_url
else
request.original_url
end
Run Code Online (Sandbox Code Playgroud) 有没有办法使用delayed_jobgem after_create在后台运行模型回调函数?
我有一个private函数用作after_create :get_geolocation在用户注册后运行的回调.
如何配置模型以在后台运行?
rails textmate包的颜色代码为false,与FALSE不同
有区别吗?按照惯例或风格指南,全帽版本更好吗?
是否可以使用 ActiveAdmin 创建多步骤表单?
如果没有,是否可以在提交表单后添加另一个重定向到的页面(不是默认索引、显示或表单页面)?
ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 activeadmin
如何引用当前正在查看的对象的实例?
以下作品
ActiveAdmin.register Example do
sidebar "test" do
@name = example.name
end
end
Run Code Online (Sandbox Code Playgroud)
以下内容不起作用
ActiveAdmin.register Example do
member_action :some_stuff, :method => :put do
@name = example.name
end
end
Run Code Online (Sandbox Code Playgroud)
如何引用member_action 中的对象?
或者我必须创建另一个实例吗?
我如何参考以下内容?
scope :children, where("parent_id = ?", self.id)
在这种情况下,自我似乎不起作用