草庐IT

has-dropdown

全部标签

ruby-on-rails - 多重自​​引用 has_many :through associations in Rails 4.

我正在编写一些使用多个自引用模型的代码,我希望能够使用连接表进行匹配,因为它们是通过连接表关联的。模型看起来像用户.rb:classUser约会.rb:classAppointment不幸的是,Rails生成的查询是:SELECT"users".*FROM"users"INNERJOIN"appointments"ON"users"."id"="appointments"."student_id"WHERE"appointments"."user_id"=$1这会引发错误,因为Appointment没有user_id参数。我已经尝试指定foreign_key选项,但这没有任何作用。还有

ruby-on-rails - 使用 Virtus 的 Rails 表单对象 : has_many association

我很难弄清楚如何制作一个form_object,它为has_many与virtusgem的关联创建多个关联对象.下面是一个人为的例子,其中表单对象可能有点矫枉过正,但它确实显示了我遇到的问题:假设有一个user_form对象创建一个user记录,然后是一对关联的user_email记录。以下是模型:#models/user.rbclassUser我继续创建一个表单对象来表示用户表单:#app/forms/user_form.rbclassUserFormincludeActiveModel::ModelincludeVirtus.modelattribute:name,Stringat

ruby-on-rails - HTTPBadRequest {"error_description": "Code has expired", "error": "invalid_grant"} for Oauth authentification, Rails 上的 ruby

我的omniauth应用程序有奇怪的行为。基本上,我有一个管理面板,需要访问它才能使用Yandex帐户进行身份验证。问题:我按照多个指南中的要求进行了所有操作,自昨天以来一切正常,我尝试使用Yandex帐户进行身份验证,但收到HTTPBadRequest错误。注意:我的代码没有一点改动。我所有的访问数据client_Id和密码也没有改变。gem文件:gem"omniauth-yandex"路线:devise_for:users,:controllers=>{:omniauth_callbacks=>"callbacks"}回调Controller:defyandexrequire'ne

sql - 通过 'has_many'获取属性平均值

我这里有两个模型,一个Tab和一个Rating。一个Tabhas_manyRatings,每个Ratingbelongs_to一个制表符;每个Rating都有一个介于1和5之间的value。这是我的模型,带有相关代码:tab.rbclassTabrating.rbclassRating这是我的索引View的显示方式:Rating列是标签的平均评分值。现在,为了获得每个选项卡的平均评分,我正在对每个选项卡的平均评分执行查询。这非常慢,我正在寻求改进。这是我的Controller,具有相关的方法:tabs_controller.rbclassTabsController这些是我加载选项卡i

ruby-on-rails - 用户 has_many 测试,测试 has_many 成绩。如何计算成绩?

我正在努力弄清楚如何实现这个计数。模型是用户、测试、等级用户has_many测试,测试has_many成绩。每个等级都有一个计算分数(strong_pass、pass、fail、strong_fail)。我如何获得每个成绩类别的计数?为清楚起见,用户可能会参加4次数学测试,直到通过为止。他们可能会在范围内获得分数(通过、失败等)但我想知道,在为用户X进行的所有测试中,有多少通过,有多少失败?user.tests.grades.passed.count是我希望能起作用的。但没有(我确实在成绩模型中为“通过”、“失败”等命名了范围)ClassGradedefself.passedwhere

ruby-on-rails - 具有 has_and_belongs_to_many 的 ActiveModel 序列化程序

我有一个名为事件的模型。事件has_and_belongs_to_many:event_sub_categories和EventSubCategoryhas_and_belongs_to_many:events。我有以下操作:defindex@events=Event.where(begins_at:DateTime.now.beginning_of_day..1.week.from_now).group_by{|e|e.begins_at.beginning_of_day}.to_a.to_jsonrenderjson:@eventsend该操作完全按照需要返回数据,除了一个问题,它

ruby-on-rails - 很难将 `is_x?` 别名化为 `has_role? x`

每个用户都有很多角色;要查明用户是否具有“admin”角色,我们可以使用has_role?方法:some_user.has_role?('admin')定义如下:defhas_role?(role_in_question)roles.map(&:name).include?(role_in_question.to_s)end我希望能够将some_user.has_role?('admin')写成some_user.is_admin?,所以我做到了:defmethod_missing(method,*args)ifmethod.to_s.match(/^is_(\w+)[?]$/)has

ruby-on-rails - 在 Rails 中,关键字 belongs_to、has_many 等实际上是做什么的?

我理解关系数据库、主键/外键等的概念,但是,我无法看到在我的模型中设置这些属性的实际结果。他们会生成辅助函数或类似的东西吗?或者它们只是在数据库级别工作?比如我有这两个模型(其他属性省略)classCourse我可以像这样简单地获取任何给定类(class)的所有部分:Section.where(course_id:1234)但是,我可以在根本不建立关系的情况下做到这一点。所以我的问题是:我们为什么要这样做? 最佳答案 添加这些方法可以让你做这样的事情:Section.find(5).course#此外,它还可以让您更轻松地加入查询:

ruby-on-rails - "has_many :through"通过与 STI 的多态关联关联

我有两个使用people表的模型:Person和Person::Employee(继承自Person)。people表有一个type列。还有另一种模型,Group,它有一个名为:owner的多态关联。groups表有一个owner_id列和一个owner_type列。app/models/person.rb:classPersonapp/models/person/employee.rb:classPerson::Employeeapp/models/group.rb:classGroup问题是,当我使用以下代码创建Person::Employee时,owner_type列设置为不正确

ruby-on-rails - Rails 中的密码不能为空(使用 has_secure_password)

我是Rails的新手,我知道StackOverflow上已经存在很多关于这个问题的问题,但我尝试了几乎所有的解决方案,但没有一个解决方案适合我。我正在尝试使用has_secure_password在我的rails项目中实现身份验证,并且我遵循了rails文档中提到的所有步骤。提交创建用户表单后,即使我在输入框中输入密码并确认密码值,我仍收到“密码不能为空”错误消息。如果我遗漏了什么,请提出建议。我遵循的步骤是-1)在gem文件中添加以下行-gem'bcrypt',要求:'bcrypt'2)捆绑安装3)我的模型代码-classUser4)我的View代码-:::5)我的Controlle