嵌套表单中的HABTM复选框

我试图以嵌套的forms实现HABTM复选框。 目前,我有3个型号。 主题,课程和小组。 协会如下:每个主题都有很多课程。 每节课都属于许多小组。 现在,我正在尝试在单个创建和编辑表单上实现它们。 这样一个课程嵌套在主题中,每节课都有一个组复选框列表来实现HABTM关系。 我在实施HABTM关系时遇到了麻烦,因为每个科目有很多课程,我不确定如何区分不同的课程。 为了进一步详细说明,我能够使嵌套表单工作,但我无法获得HABTM复选框以保存到正确的课程。 以下代码示例是我的HABTM复选框实现。 目前,我已使用此行“subject [lessons_attributes [0]] [group_ids] []”将其保存到第一课。 但是,课程数量各不相同,我不太确定如何确定课程“数字”,即“subject [lessons_attributes [ 0 ]] [group_ids] []”中的粗体0。 这样我就可以将小组保存到正确的课程中。 任何意见,将不胜感激。

Ruby类方法与特征类中的方法

类的本征类(或元类)中的类方法和方法只有两种方法来定义一个东西吗? 否则,有什么区别? class X # class method def self.a “a” end # eigenclass method class << self def b "b" end end end Xa和Xb表现有何不同? 我认识到我可以通过打开本征类来覆盖或别名类方法: irb(main):031:0> class X; def self.a; “a”; end; end => nil irb(main):032:0> class X; class < # irb(main):033:0> Xa => “a” irb(main):034:0> Xb => “a” irb(main):035:0> class X; class < nil […]

Rails错误“NoMethodError” – 我的第一个ruby应用程序

我绝对是全新的rails,所以答案可能非常简单。 开始: 我的页面正在生成此错误 任务#new中的NoMethodError 显示第3行引发的app / views / tasks / new.erb: 用于#的未定义方法`tasks_path’ 以下是观点: : : 控制器: class TasksController :id) end def new @task = Task.new end …(more) 和模型: 我看不出有什么问题,但就像我说的那样,到目前为止我还是一无所知。 谢谢! class Task < ActiveRecord::Base validates_presence_of :description belongs_to :priority has_and_belongs_to_many :staff has_and_belongs_to_many :catagory end

如何使用Ruby(和open-uri)并行处理数组中的项

我想知道如何使用open-uri打开多个并发连接? 我认为我需要使用线程或纤维,但我不确定。 示例代码: def get_doc(url) begin Nokogiri::HTML(open(url).read) rescue Exception => ex puts “Failed at #{Time.now}” puts “Error: #{ex}” end end array_of_urls_to_process = [……] # How can I iterate over items in the array in parallel (instead of one at a time?) array_of_urls_to_process.each do |url| x = get_doc(url) do_something(x) end

保存PDFKit中间件显示的PDF文件

如果有人有兴趣将PDF文件保存在PDFKit中间件gem所显示的文件系统中,那么这里是…… 覆盖middleware.rb文件的call方法。 在覆盖中只需替换此行: body = PDFKit.new(translate_paths(body, env), @options).to_pdf 同 pdf = PDFKit.new(translate_paths(body, env), @options) file = pdf.to_file(‘Your/file/name/path’) Mymodel.my_method() #You can write your method here to use that file body = pdf.to_pdf #Here you can change the response body 如果您不想提供pdf响应,还可以覆盖response-body和content-type。 如果您有任何进一步的查询,请继续。 这个过程真的很有帮助,因为当你在视图文件中使用大量的JavaScript时, render_to_string方法将无法工作,即它不会渲染繁重的JavaScript。

Rails has_many:通过关联

我正在尝试创建一个rails应用程序,用户可以在其中创建活动并邀请参与者加入并需要您的帮助! 我一直在圈子里,尝试一些东西,但似乎根本不对,这现在让我发疯! 我正在使用rails 4。 你会如何设置活动模型? User has_many :events through :meeting //for the participants? has_many :events // for the organizer? Event belongs to :user has_many :participants, class_name: “User” Participant belongs to :user has_many :events through :meeting Meeting has_many :participants has_many :events 这有任何意义吗? 我是否需要参与者模型,或者我只是过度设计它? 我想我有点困惑,组织者是一个用户,参与者也是用户和会议需要组织者和参与者所以不太清楚如何使这项工作… 另请阅读我只有在添加参与者时才能建立会议关系。 这会是要走的路吗? 谢谢!

railstutorial来自哪里的调试信息

在第7章中,我得到了以下输出 — !ruby/hash-with-ivars:ActionController::Parameters elements: controller: static_pages action: home ivars: :@permitted: false 有人可以解释一下hash-with-ivars来自哪里以及ivars:@permitted:false意味着什么?

Ruby中的函数指针?

也许这是一个愚蠢的问题,但我是ruby的新手,我用Google搜索,发现这些: proc=Proc.new {|x| deal_with(x)} a_lambda = lambda {|a| puts a} 但我想要这个: def forward_slash_to_back(string) … def back_slash_to_forward(string) … def add_back_slash_for_post(string) … … case conversion_type when /bf/i then proc=&back_slash_to_forward when /fb/i then proc=&forward_slash_to_back when /ad/i then proc=&add_back_slash_for_post else proc=&add_back_slash_for_post end n_data=proc.call(c_data) 但它给了我一个错误。 我不知道如何在Ruby中做到这一点,任何人都可以提供帮助? 非常感谢!

使用Regex表达式搜索Ruby数组

嗨我有小ruby函数,拆分Ruby数组如下: – def rearrange arr,from,to sidx = arr.index from eidx = arr.index to arr[sidx] = arr[sidx+1..eidx] end arr= [“Red”, “Green”, “Blue”, “Yellow”, “Cyan”, “Magenta”, “Orange”, “Purple”, “Pink”, “White”, “Black”] start = “Yellow” stop = “Orange” rearrange arr,start,stop puts arr.inspect #=> [“Red”, “Green”, “Blue”, [“Cyan”, “Magenta”, “Orange”], “Cyan”, “Magenta”, “Orange”, “Purple”, “Pink”, “White”, “Black”] 我需要在我的开始使用正则表达式并停止搜索,例如 开始=“/大喊/” […]

gulp plugin gulp-ruby-sass没有编译

gulp插件gulp-ruby-sass ( https://github.com/sindresorhus/gulp-ruby-sass )给出不编译,终端中的错误信息就像这样👇 错误:必须提供模式 这是gulpfile.js的详细信息 var gulp = require(‘gulp’), uglify = require(‘gulp-uglify’), sass = require(‘gulp-ruby-sass’); gulp.task(‘styles’, function (argument) { gulp.src(‘sass/app.scss’) .pipe(sass()) .pipe(gulp.dest(‘css/’)); });