使用fields_for时如何将范围应用于关联?

我有一个项目有很多任务,每个任务属于一个人。 在我的项目编辑表单中,我允许编辑现有任务并使用嵌套对象表单工具添加新任务( http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails -nested-attributes ): 当fields_for从数据库请求任务时,我想急切加载关联的Task Person对象,但我找不到解决方案。 可能吗? 在Project模型中,我可以使用:include选项定义我的has_many:tasks,但我宁愿避免这种情况,因为在处理项目任务时我不需要急于加载Person对象。 现在我已经创建了第二个has_many关联:tasks_including_person以及相应的accepts_nested_attributes_for并在我的fields_for中使用它。 它有效,但我不想创建像这样的特定关联。

蒙古族中的暧昧关系

我正在尝试在Post模型中使用viewer_ids来保存user_ids,并将User模型中的Viewed_ids保存到已查看的post_ids中。 使用Rspec进行测试添加/删除并访问User的关系时,它的效果非常好。 但是当我使用RABL来查看post-while用户数据时,它会被混淆并给我一个模糊的关系。 #Post class belongs_to :user has_and_belongs_to_many :viewers, class_name: ‘User’, inverse_of: :viewed #User class has_many :users has_and_belongs_to_many :viewed, class_name: ‘Post’, inverse_of: :viewers 邮件#show中的Mongoid :: Errors :: AmbiguousRelationship Problem: Ambiguous relations :posts, :viewed defined on User. Summary: When Mongoid attempts to set an inverse document of a relation in memory, it needs to know which […]

在Rails完成加载后运行代码?

我有一个需要每分钟执行一次的周期性任务(使用delayed_job)。 我希望Rails在加载完成后自动将其排队,如果系统中还没有这样的任务。 在整个Rails启动流程结束时运行一些代码的好地方是什么? 有人建议使用config / environments / development.rb(或其他环境),但是当我从那里排队作业时,delayed_job会给我ActiveRecord问题。 我咨询了http://guides.rubyonrails.org/initialization.html ,似乎也没有明确的位置。 是否可以通过rake或其他方式在我的应用程序代码外部完成这种部署后设置? 有什么建议? 谢谢!

ror中的多个布局

刚刚开始使用Ruby on Rails。 在我的layouts / application.html.erb中,我有: 来自php – > codeigniter背景,我假设渲染类似于$ this-> load-> view(”); 在codeigniter。 虽然这很好,但我希望有多个应用程序布局文件,例如 布局/应用程序默认 布局/应用程序全宽(对于全宽页面) 等等.. 在codeigniter中你只需要声明你想要使用哪些模板/布局文件,但是作为ruby on rails有点神奇(它为你做了很多事情),我假设它默认调用应用程序布局。 我想知道是否有办法选择我想要的布局文件?

Rails 4:使用Cocoon Gem将child_index添加到动态添加(嵌套)表单字段

更新:我正在尝试将表单字段添加/删除到涉及多个模型的嵌套表单。 我已经看过Ryan Bates的“动态表格”轨道广播,我已经使用Cocoon Gem参考了这篇文章 。 在该文章之后,除了child_index之外,一切都完美无缺。 child_index仅出现在第一个:kid输入字段( :name )和第一个:pet输入字段( :name和:age )上。 然后它返回到正在添加的字段的真实性标记。 我已经删除了所有的JS和帮助器方法,而是使用了一些内置JS的Cocoon方法。 我修复了问题,单击“添加”将通过从application.html.erb文件中删除= javascript_include_tag :cocoon来添加两个字段而不是一个。 我试过添加jQuery和表单助手,但我不确定我是否正确输入了代码。 (我更改了模型对象以使关系更清晰) parent.rb文件: class Parent < ActiveRecord::Base has_many :kids has_many :pets, through: :kids # <<<<<< ADDED KIDS USING 'through:' kid.rb文件: class Kid < ActiveRecord::Base belongs_to :parent has_many :pets accepts_nested_attributes_for :pets, reject_if: :all_blank, allow_destroy: true validates :name, presence: true pet.rb文件: […]

Rails无法调用未定义的方法’charAt’

我有一个Rails应用程序收到以下错误: Less::ParseError in Home#index Showing /Users/burtondav/sites/requestsys/app/views/layouts/application.html.erb where line #20 raised: Cannot call method ‘charAt’ of undefined (in /Users/burtondav/sites/requestsys/app/assets/stylesheets/bootstrap_and_overrides.css.less) Extracted source (around line #20): 17: } 18: 19: 20: “all” %> 我正在使用的一些GEMS: gem ‘rails’, ‘3.2.11’ gem ‘twitter-bootstrap-rails’ group :assets do gem ‘sass-rails’, ‘~> 3.2.3’ gem ‘coffee-rails’, ‘~> 3.2.1’ gem ‘less-rails’ gem ‘commonjs’ gem ‘therubyracer’, :platforms => […]

获取Devise身份validation以发送用于密码检索的电子邮件

我正在我的本地主机上测试Rails的Devise身份validation,并希望让它发送用于密码检索的电子邮件(即“忘记密码”链接)。 密码检索内置于Devise中,只需正确配置即可发送电子邮件。 在initializers / devise.rb中,我放了 config.mailer_sender = “i…@mydomain.com” 但是当我尝试在rails的Devise身份validation上测试“忘记密码”链接时,我收到了以下错误消息。 如果我确实需要为实际发送的电子邮件添加其他信息,我需要添加什么以及在哪里? 在用户模型中,这些是正在使用的模块:database_authenticatable,:registerable,:recoverable,:rememberable,:trackable,:validatable —错误消息—在Devise中的Errno :: ECONNREFUSED :: PasswordsController #create Connection refused – connect(2)Rails.root:/ Users / myname / Sites / rails3d Application Trace | 框架跟踪| 完整跟踪请求参数:{“utf8”=>“✓”,“authenticity_token”=>“8oO5vXqO4esl3ztn5yE7OkVxZe + Ju94jj76rbKR225I =”,“user”=> {“email”=>“myemail … @ gmail.com”}, “commit”=>“发送重置密码说明”}显示会话转储显示env转储响应标头

Rails按记录关联查询

我对Rails相对较新,并且想要了解更多我正在尝试构建一个简单的博客。 我正在进行的一个问题是标记。 我有一个Tag模型,我用它来创建和管理可以应用于post的标签。 我也有一个Post模型。 我需要能够将任何标签与post相关联,检索它们以获得输出,并能够通过特定标签过滤/查询post。 到目前为止,我已经在Post上创建了一个名为tags的列,它被分配了一个Tag ID数组,然后被序列化。 这非常适合检索,但我的理解是,尝试通过序列化列查询记录是一个很大的禁忌 。 正如上面的链接建议,我已经这样做以实现我的filter: Post.all.select { |post| post.tags.include? 3 } 但我知道这是收集我的所有post,然后使用数组方法select过滤它们。 我的问题是:如何将任意数量的Tag记录与Post记录关联,并按给定标记查询/过滤post记录?

这个Rails代码适用于Ruby 1.8.7,但不适用于1.9.2

编辑 : 这有效: current_user.id, :started => Time.now.utc, :step_quiz_id => @course_step.step.step_quiz.id) : @quiz_attempt), :url => submit_quiz_course_course_step_path(@course_step.course, @course_step) do |f| %> 但这不会:(尝试使用form_for作为函数form_for() current_user.id, :started => Time.now.utc, :step_quiz_id => @course_step.step.step_quiz.id) : @quiz_attempt), :url => submit_quiz_course_course_step_path(@course_step.course, @course_step)) do |f| %> 如主题中所述,代码在Ruby 1.8.7中运行完美,但在1.9.2中有错误,似乎无法弄清楚原因。 代码 : ‘course_steps/header’ %> ‘course_steps/quiz_results’ %> Instructions current_user.id, :started => Time.now.utc, :step_quiz_id => @course_step.step.step_quiz.id) : @quiz_attempt, :url […]

思考Sphinx并搜索多个模型

我正在寻找一种方法来对多个模型进行搜索(参见这篇文章 ),并得到了几个答案,说思维狮身人面像将是一个很好的匹配这种事情。 事实上,它看起来很甜美,似乎应用程序范围的搜索function( ThinkingSphinx.search )接近我想要的。 但文档声明这将返回各种模型对象,具体取决于找到匹配的位置。 我的模特有点像这样: 雇员 公司 市 县 员工只通过公司与县相关联,公司又与市政府相关联,而市政府又与实际的县相关联。 现在作为搜索的结果,我真的只想要Employee对象。 例如,搜索字符串“joe tulsa”应返回所有Employees,其中两个单词都可以在命名模型中的某处找到。 我会得到一些误报,但至少我应该让塔尔萨县的每个员工都叫“乔”。 这是可以通过Thinking Sphinx的内置function实现的吗?