我有一个通过has_many通过项目模型关联的任务模型,需要在通过关联删除/插入之前操作数据.
由于" 自动删除连接模型是直接的,因此不会触发销毁回调. "我无法使用回调.
在任务中,我需要所有project_ids在保存任务后计算Project的值.如何通过关联禁用删除或更改删除以销毁has_many?这个问题的最佳做法是什么?
class Task
has_many :project_tasks
has_many :projects, :through => :project_tasks
class ProjectTask
belongs_to :project
belongs_to :task
class Project
has_many :project_tasks
has_many :tasks, :through => :project_tasks
Run Code Online (Sandbox Code Playgroud) 是否可以使用可选参数编写一个范围,以便我可以使用和不使用参数调用范围?
就像是:
scope :with_optional_args, lambda { |arg|
where("table.name = ?", arg)
}
Model.with_optional_args('foo')
Model.with_optional_args
Run Code Online (Sandbox Code Playgroud)
我可以检查lambda块是否给出arg(如Unixmonkey所描述)但是在调用范围时没有参数我得到了 ArgumentError: wrong number of arguments (0 for 1)
我已经设置了一个基于角色的访问控制系统,其中包含以下模型:
如果用户具有特定的UserRole,则只允许用户负责该项目.此Userrole名称为"负责项目",ID为2.
在用户模型中,有两个has_many关联:responsible_assignments和responsible_projects.仅当用户具有ID为2的UserRole"负责项目"时,此关联才有效.
是否可以在用户模型中为responsible_*关联创建条件关联,这是设置此类关系的常用方法吗?
解决这类问题的最佳做法是什么?
class Role < ActiveRecord::Base
has_many :assignments
has_many :users, :through => :assignments
class UserRole < Role
class ProjectRole < Role
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :role
belongs_to :resource, :polymorphic => true
class User < ActiveRecord::Base
has_many :assignments
has_many :roles, :through => :assignments,
:class_name => "UserRole"
has_many :responsible_assignments, :class_name => "Assignment",
:conditions => { :role_id => 4 } // specific project role
has_many :responsible_projects, :through => :responsible_assignments,
:source => …Run Code Online (Sandbox Code Playgroud) conditional ruby-on-rails has-many single-table-inheritance polymorphic-associations
我想存储人/公司联系人的地址和关系.地址可以有多条街道,电话号码和电子邮件.拥有某种导出功能也很不错.
联系处理似乎是一项常见的任务,所以我想知道其他人是如何做这项工作的.
我看了下面的宝石和应用程序:
https://github.com/pluginaweek/has_addresses
演示了处理国家,地区和地址的参考实现
https://github.com/midas/addressable_record
将地址模式的组合封装到任何易于使用的库中
https://github.com/huerlisi/has_vcards
Rails插件提供VCard,如联系人和地址模型和帮助程序
https://github.com/fraser/vpim-rails
vPim for rails通过用于"个人信息"交换的标准iCalendar和vCard数据格式为Ruby提供日历,日程安排和联系支持
https://github.com/jwood/addressbook
地址簿Web应用程序(Rails),用于存储电话号码,地址和打印邮件标签
您使用上述宝石中的一种,是否可以推荐其他宝石,或者您自己实施(为什么以及如何实施)?
activerecord vcf-vcard ruby-on-rails addressbook ruby-on-rails-3
我有一个日期范围(从,到)我希望循环通过不同的间隔(每日,每周,每月,...)
我如何循环这个日期范围?
更新
谢谢你的回答,我想出了以下内容:
interval = 'week' # month, year
start = from
while start < to
stop = start.send("end_of_#{interval}")
if stop > to
stop = to
end
logger.debug "Interval from #{start.inspect} to #{stop.inspect}"
start = stop.send("beginning_of_#{interval}")
start += 1.send(interval)
end
Run Code Online (Sandbox Code Playgroud)
这将循环一个日期范围,其间隔为周,月或年,并且考虑给定间隔的开始和结束.
由于我在我的问题中没有提到这一点,我选择了将我推向正确方向的答案.
有人可以举例说明如何使用pluginaweek state_machine作为具有活动记录的票证模型吗?我不明白文档中复杂的例子.
示例说明:
我已经设置了一个嵌套资源,/projects/1/tasks并希望使用sort_link方法.
随着<%= sort_link @search, :taskname %>我希望/projects/1/tasks?q...,但我做得到/tasks?q....
这可能吗?
我正在使用作为引擎安装的 gem 并想自定义一些类。我要重载的文件位于我的本地 rvm 目录中
(rvmdir)/(gem)/lib/(modulename)/containers/file_to_override.rb
Run Code Online (Sandbox Code Playgroud)
我将文件复制到我的应用程序目录
(appdir)/lib/(modulename)/containers/file_to_override.rb
Run Code Online (Sandbox Code Playgroud)
并定制了一些输出。
该文件看起来类似于:
module (Modulename)
module Containers
class FileToOverride << xxx
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
但它似乎并没有超载。是否可以在我自己的应用程序中覆盖 lib 文件?
我在我的网站上使用Prettify.js和css,但它不适用于HTML
假设我有这样的HTML:
<div style="padding:3px 0px">
<asp:Label ID="lblTotalAns" runat="server" Text="0 Answers" CssClass="ansHeading" />
</div>
Run Code Online (Sandbox Code Playgroud)
如何通过美化来呈现?
我有多个具有相同类的多选框,我想取消选择一个事件.他们class_for_all_multi_selects周围都有同一个班级的div .
$("#element_to_uncheck_all_options").change(function() {
$('.class_for_all_multi_selects'). ...?
});
<div class="class_for_all_multi_selects">
<select multiple="multiple" name="1">
<option value="1">option1</option>
<option value="2">option2</option>
</select>
</div>
<div class="class_for_all_multi_selects">
<select multiple="multiple" name="2">
<option value="1">option1</option>
<option value="2">option2</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
如何通过类与jquery取消选中多个选择框选项?
activerecord ×4
javascript ×2
ruby ×2
addressbook ×1
callback ×1
conditional ×1
css ×1
has-many ×1
html ×1
intervals ×1
jquery ×1
overloading ×1
ransack ×1
scope ×1
sorting ×1
vcf-vcard ×1