Tag: ruby on rails

为HABTM选择许多框

我有两个型号; 在它们之间具有HABTM关联的问题和类别。 现在我想要一个表单,我可以编辑问题类别,但我不知道如何。 我从这开始,但我迷路了,我不确定如何命名“名称”属性等以及如何自动编辑/创建问题,我该如何设置? true, :size => 9} %> 我设法设置问题(has_many) – >用fields_for和accepts_nested_attributes_for回答,但不是这个。

在Rails中,如何根据第一个属性自动分配项目的所有属性

基本上,我想生成一个项目,在这种情况下,一个环。 我有不同类型的戒指: class Ring < ActiveRecord::Base DISPLAY_NAMES [ 'Silver', 'Gold', 'Diamond' ] attr_accessible :description, :display_name, :roll, :bonus, :total, :image, :gold end 有没有办法随机化DISPLAY_NAMES的戒指? 我猜的是@ring.display_name = rand(Ring::DISPLAY_NAMES) ? 有一个更好的方法吗? 一旦找到,有没有办法设置环的所有其他属性,如@ring.roll和@ring.bonus等。 例如,如果一个环出现为银,我可以在模型中声明某种if语句,表明该环是否为银而其他属性是bla bla bla? 提前致谢。 学习缓慢但肯定。

Rails 4错误:ArgumentError – 参数数量错误

我是rails的新手,目前正在编写我的第一个应用程序。 我创建了一个搜索来搜索我的用户(用户名或标签 – 使用acts_as_taggable_on gem)。 出现以下错误: ArgumentError in UsersController#index wrong number of arguments (0 for 1) 用户模型 # Search def self.search(search) if search where([“username LIKE ?”, “%#{search}%”]) elsif searchtags none else all end end # Search Tags def self.searchtags(searchtags) if searchtags tagged_with([“#{searchtags}”], :any => true, :wild => true) else none end end 用户控制器 def index […]

在UTF-8上的Home #index“\ xA9”中编码:: InvalidByteSequenceError

我是Ruby on Rails的新手,现在已经和这个问题争论了一段时间。 我从git中删除了一个网站,并确保安装了所有依赖项,但是,当我运行该站点时,我收到错误: ActionView :: Template :: Error(UTF-8上的“\ xA9”) 因为使用代码image_path(“bground2.jpg”)链接图像的行。 当我删除image_path(“bground2.jpg”) ,错误得到解决。 然而,我需要image_path(“bground2.jpg”)并且离不开它。 我在这里尝试了解决方案,但似乎没有用 这是index.html.erb文件的一部分,但错误在包含image_path和image_url所有位置重复出现: <div class="img-responsive" style="background-image: url(); background-position: 50% 0;height: 500px;”> <!– <!– –>

无法通过关联更新has_many中的连接模型额外属性 – Rails

我仍然是Rails的学习者,正在制作一个Google Adwords模拟游戏,用于培训。 在游戏内部(我可能只解释这个问题的相关部分),我有三个模型,Adgroup(在我的代码中称为KeywordAdgroup), Keyword,AdgroupKeyword ,以及其中包含game_id的游戏模型。 这三种模式之间的关系是一个很好的结果has_many through: assciation,Adgroup通过AdgroupKeyword有很多关键字,而Keyword通过AdgroupKeyword有很多Adgroups。 现在,我想采用一种逻辑,即每个关键字只能添加到特定游戏的单个广告组中。 所以我在连接模型中添加了额外的属性game_id – AdgroupKeyword,并在此模型中采用validates_uniqueness_of :keyword_id, scope: :game_id 。 但是,我发现使用类似的代码,我可以使用.save方法validationCreate中的唯一性,但我无法使用.update(params)方法validationUpdate中的唯一性。 主要问题是,使用create和update的类似代码,create one可以save game_id save到连接模型(AdgroupKeyword),其中update(params)没有将game_id保存到连接模型,在控制台中,我可以看到update没有将game_id插入记录中。 它会变成像game_id: nil : # 但是save方法确实插入了game_id,当使用save方法插入时,game_id不是nil。 就像是 # 以下是我的代码: keyword_adgroup.rb (广告组的模型) class KeywordAdgroup < ApplicationRecord belongs_to :keyword_campaign has_many :adgroup_keywords, inverse_of: :keyword_adgroup, dependent: :destroy has_many :keywords, through: :adgroup_keywords, source: :keyword accepts_nested_attributes_for :adgroup_keywords, allow_destroy: true … accepts_nested_attributes_for […]

Rails / Mongoid:在mongoimport之后,父对象无法识别has_many / belongs_to关系的子对象

使用mongoimport工具通过CSV将包含以下行的CSV导入mongodb: object_1_id,field1,field2 52db7f026956b996a0000001,apples,oranges 52db7f026956b996a0000001,pears,plums 这些字段将导入到集合Object2 。 导入后,通过控制台确认存在行。 # # Object2可以通过object_1_id访问object_1_id : > o = Object2.first # > o1 = o.object_1 # 但是Object1看不到任何使用mongoimport导入的Object2行。 它可以看到通过控制台或其他方式创建的所有行: > o1.object_2s.count 10 > o1.object_2s.find(“52e0713417bcabcb4d09ad12”) Mongoid::Errors::DocumentNotFound: Document not found for class Object2 with id(s) 52e0713417bcabcb4d09ad12. TL; DR Object1似乎无法识别通过mongoimport导入的子模型,尽管子项正确存储了父ID并且能够识别其父项。

Ruby on Rails:搜索后,列出不显示所有数据

我有一个问题,我在搜索中获得了重复的结果,在我的rails应用程序中允许用户搜索数据库中的项目。 这是项目模型中的搜索function: def self.search(search_industry, search_role, search_techs_ids) _projects = Project.scoped if search_industry.present? _projects = _projects.where [‘industry LIKE ?’, like(search_industry)] end if search_role.present? _projects = _projects.where [‘role LIKE ?’, like(search_role)] end if search_techs_ids.present? _projects = _projects.includes(:technols).where(“technols.id” => search_techs_ids) end _projects end 这是我的搜索页面的一部分 Technologies : true} ) %> true, :selected => tech_ids } ) %> 这是我的搜索操作: def search […]

Rails根路由索引

我还是Ruby on Rails的新手,并且一直试图将我的默认路由配置几个小时但没有成功。 目前我的路线设置为 root :to => ‘proto#index’ 但是我不知道要创建/编辑哪个文件。 我完全失去了。 我从服务器收到的错误是 AbstractController::ActionNotFound (The action ‘index’ could not be found for ProtoController): 我在找什么文件?

Devise中的NoMethodError :: SessionsController#在使用“after_sign_in_path_for(resource)”时创建

我正在尝试为我的测验webapp编写function,允许重新连接的用户继续他们中断的地方(重新连接的可能原因是:因为他们丢失了连接,或者因为他们无意中注销,或者因为他们刷新了页面)。 所以我用Google搜索并找到了解决方案,我可以在”after_sign_in_path_for(resource)”编写方法”after_sign_in_path_for(resource)” ,并且在用户登录后,我在该方法中放置的任何内容都将由Devise执行。 当我尝试渲染静态页面(甚至是许多静态页面中的一个,取决于我保存到我的数据库的“阶段”参数)时,此解决方案非常有效。 但我的应用程序有2种用户: 单击从静态页面到静态页面的链接的“教师” “学生”,无法控制,但只要教师点击(推送=通过ActionCable收到HTML并替换当前页面),就会推送新的HTML 那么现在学生登录时会发生什么: after_sign_in_path_for(resource) :确定用户是学生并进行呼叫 我的quiz_session模型中的find_current_page方法:它检查我的数据库中的phase变量,并调用我的频道服务器端的多个方法之一,例如 我的IndividualUpdateChannel resend_question_page类方法:此方法构建html并将其广播给Student。 但是:代替接收和显示发送的HTML,学生得到“Devise中的NoMethodError :: SessionsController #create – 未定义的方法`student_url’for#” 。 在日志中它看起来像1.,2。和3.运行,但然后突然应用程序尝试将学生重定向到某个地方? 并失败。 这是控制台输出: https : //pastebin.com/FKmHF4qS … [ActionCable] Broadcasting to student_#3: {:phase=>1, :answers=>[“The call returns immediately without waiting for the I/O to complete.”, {“ids”=>[9, 10, 11, 12], “current_question_index”=>1}]} Redirected to Completed 500 Internal Server Error […]

Rails:如何迁移我添加了:belongs_to关系的数据库?

这是我的第一个rails应用程序,我创建的唯一目的是学习rails。 我创建了一个应用程序,其中包含用户和产品(以及会话,但这与此无关)。 在做了rake db:mograte创建一些项目并进行测试后,我想添加一个关系,其中产品belongs_to:users和users has_many:products。 但是,当然,因为我已经创建了表,所以没有任何列可以保存这些信息。 如何在数据库上进行迁移以便反映此模型? 它有控制台工具吗? 我是否必须安装第三方gem?