Skip to content

Instantly share code, notes, and snippets.

View masterkain's full-sized avatar
🤖

Kain masterkain

🤖
View GitHub Profile
class Report < ActiveRecord::Base
has_many :report_reasons
has_many :reasons, :through => :report_reasons
validates_associated :reasons
end
class Reason < ActiveRecord::Base
has_many :report_reasons
has_many :reports, :through => :report_reasons
class Patient < ActiveRecord::Base
has_many :documents
has_many :reports, :through => :documents do
def find_for_parameter(parameter)
# report hm parameters
find(:all, :joins => :parameters, :conditions => ['parameters.id = ?', parameter.id])
end
end
# @patient.reports.find_for_parameter(Parameter.first)
AVAILABLE_LOCALES = Dir.new(LOCALES_DIRECTORY).entries.collect {|x| x =~ /\.yml/ ? x.sub(/\.yml/,"") : nil }.compact.each_with_object({}) { |str, hsh| hsh[str] = YAML.load_file(LOCALES_DIRECTORY+str+".yml")[str]["this_file_language"] }.freeze
[{"value"=>"10", "parameter_id"=>"14"}, {"value"=>"2", "parameter_id"=>"14"}]
conditions = Where.new
conditions.or('accounts.phone like ?', '%' + params[:search] + '%') unless params[:search].blank?
conditions.or('groups.name like ?', '%' + params[:search] + '%') unless params[:search].blank?
# new rails feature, :joins permit to have conditions based on the joined table.
# http://ryandaigle.com/articles/2008/7/7/what-s-new-in-edge-rails-easy-join-table-conditions
@accounts = Account.paginate(:page => params[:page] || 1, :joins => :group, :conditions => conditions, :include => :group)
>> Dictionary.first.attributes.values
=> ["ciao", 1, "hello"]
@masterkain
masterkain / report.rb
Created September 3, 2008 17:01
strange behaviour on saving rich join attributes
class Report < ActiveRecord::Base
has_many :report_parameters
has_many :parameters, :through => :report_parameters do
def push_with_attributes(monitored_parameter, rich_join_attributes)
ReportParameter.send(:with_scope, :create => rich_join_attributes) { self << monitored_parameter }
end
end
# "report_parameter_attributes"=>[{"value"=>"10", "parameter_id"=>"14"}]
$(".reason_content").livequery(
function() {
// var url = $(this).attr('autocomplete_url');
$(this).autocomplete("/administration/reasons.js");
}
);
<a href="#" onclick="try {
$(&quot;#diagnoses&quot;).append(&quot;&lt;div class=\&quot;diagnosis\&quot;&gt;\n\t&lt;dl class=\&quot;form\&quot;&gt;\n\t\t\n\t\t&lt;dt class=\&quot;optional\&quot;&gt;Name &lt;/dt&gt;\n\t\t&lt;dd&gt;\n\t\t\t&lt;input autocomplete=\&quot;off\&quot; id=\&quot;report_diagnosis_attributes__name\&quot; name=\&quot;report[diagnosis_attributes][][name]\&quot; size=\&quot;30\&quot; type=\&quot;text\&quot; /&gt; \n\t\t\t&lt;a class=\&quot;remove_diagnosis\&quot; href=\&quot;#\&quot;&gt;remove&lt;/a&gt;\n\t\t&lt;/dd&gt;\n\t\t\n\t&lt;/dl&gt;\n&lt;/div&gt;&quot;);
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('$(\&quot;#diagnoses\&quot;).append(\&quot;&lt;div class=\\\&quot;diagnosis\\\&quot;&gt;\\n\\t&lt;dl class=\\\&quot;form\\\&quot;&gt;\\n\\t\\t\\n\\t\\t&lt;dt class=\\\&quot;optional\\\&quot;&gt;Name &lt;/dt&gt;\\n\\t\\t&lt;dd&gt;\\n\\t\\t\\t&lt;input autocomplete=\\\&quot;off\\\&quot; id=\\\&quot;report_diagnosis_attributes__name\\\&quot; name=\\\&quot;report[diagnosis_a
// $('element').setupAuto("/administration/reasons.js")
$.fn.setupAuto = function(url) {
$(this).autocomplete(url, {
width: 620,
max: 10,
highlight: false,
scroll: true,
scrollHeight: 300
});
}