Tag: 模型

从另一个模型渲染部分

我有一个用于模拟房屋的rails应用程序。 有一个房子模型有很多参数,它有很多has_many rooms 。 房间有house_id和名字。 我还使用了http://github.com/ryanb/complex-form-examples来允许将许多灯和small_appliances添加到房间。 complex-form-example使用RJS和partials来完成此任务。 有一个名为calculator的控制器,用户将用它来访问应用程序。 当按下计算器上的提交按钮时,它会重定向到add_rooms页面(位于app/views/calculator/add_rooms.html.erb )页面,用户可以在该页面中add rooms 。 add_rooms页面使用app/views/rooms/_room_form.html.erb 。 我无法显示,因为rails总是在app / views / calculator文件夹中查找内容。 我怎样才能显示它? 另请注意,我需要在保存房间时保存房屋的ID。 以下是所有相关代码(我希望): 更新 如果我注释掉两个add_child_link 。 页面呈现。 但是,当我单击提交时,我收到一条新的错误消息: CalculatorController #add_room中的ActiveRecord :: AssociationTypeMismatch SmallAppliance(#49096610)预计,得到arrays(#1560620) RAILS_ROOT:C:/ Users / ryan / Downloads / react 应用程序跟踪| 框架跟踪| 完整跟踪 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/associations/association_proxy.rb:263:在`raise_on_type_mismatch’中 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/associations/association_collection.rb:320:在`replace’中 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/associations/association_collection.rb:320:在’each’中 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/associations/association_collection.rb:320:在`replace’中 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/associations.rb:1322:在`small_appliances =’中 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2744:在`send’中 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2744:在`attributes =’ C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2740:在’each’中 C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/base.rb:2740:在`attributes =’中 […]

Rails – 具有多个数据库的相同模型(只读)

我有多个数据库,里面有相同的表和列名称(但不同的唯一ID和行..)。 它不是拥有一个包含所有行的庞大数据库,而是分成不同的数据库。 这是我无法改变的(您可以将其视为从不同国家收集相同的数据,但每个国家/地区都有自己的数据库)。 这些数据库是“只读”的 – 这意味着,当我通过Rails使用它们时,它只是显示数据(或将其保存在本地数据库中) – 我不会更改任何远程数据库上的数据。 我的问题是,我需要在rails中有一个模型,它收集来自所有这些数据库的数据。 我们希望能够做到这样的事情: OneModelAllDB.select_where(…) 而不是将每个搜索拆分为: data1 = FirstDBModel.select_where(same_condition) data2 = SecondDBModel.select_where(same_condition) … data = data1 + data2 + … 另外,如果我想用线程(并行搜索)制作1个模型,则存在一个问题: [:db1, :db2].each do |db| threads << Thread.new do self.establish_connection(db) results[db] = self.where(bla_bla_condition) end end 因为连接的修改不是线程安全的…… 有没有办法这样做? 由于我们不更改任何这些数据库,并且每行都有唯一的ID,因此从不同的数据库获取数据并将它们连接在一起应该没有任何问题… 谢谢!

Rails App有3种不同类型的用户

我现在正处于应用的设计阶段。 主要是在纸上做一些事情来获得应用模型的洞察力,定义我需要的东西等等。 我发现有一个问题,我不知道如何解决,或者更具体,我不知道如何实现它以保持干燥。 所以这里是交易: 我有三个不同类型的用户/帐户的应用程序: 常规帐户 – 帐户在应用程序中具有基本权限的基本配置文件,具有常规帐户的用户可以查看每个人的公开个人资料,可以修改自己的个人资料,只能有1个个人资料图片,可以搜索等。 高级帐户 – 具有高级配置文件,这意味着用户可以指定联系信息,外观详细信息,有预订页面,可以获得优惠,有日历 公司帐户 – 包含公司简介,其中包含公司的联系信息,可以向高级用户提供报价,并可以浏览应用程序中的所有配置文件 基本上,我为所有用户提供了一个用户模型,我决定使用Devise进行身份validation。 创建用户后,我想向他/她显示一个他/她可以选择帐户类型的屏幕 – 常规,高级,公司。 之后,他/她将拥有系统中的适当权利以及适当的个人资料。 他将来无法在帐户类型之间进行更改。 我还要保持代码清洁干燥,我很难找到最好的解决方案。 现在我把头撞在墙上,因为我无法弄明白怎么做。 这是一个问题: 应该如何看待最终的模型图。 它应该是多态关联吗? 或者它应该只是一般: class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :password_confirmation, :remember_me, :account_type has_one :account has_one :entertainer has_one :company after_create :create_account def create_account if self.account_type […]

ActionController :: ParameterMissing param丢失或值为空

我无法解决这个问题。 当我尝试使用“Chatroom #new”方法时,我得到了这个错误, ActionController :: ParameterMissing param丢失或值为空 。 下面的代码是ChatroomController。 class ChatroomsController :id,:user_id,:messages} end #before_aciton def find_room_owner @item = Item.find(params[:item_id]) @buyer = User.find(params[:user_id]) @seller = Product.find_by(user_id:@item.user_id) end def objects_for_index @user = User.find(params[:user_id]) @items = Item.all end end 下面的代码是Message#new的视图。 Chatroom#new Find me in app/views/chatroom/new.html.erb 下面的代码是Message的迁移。 class CreateMessages < ActiveRecord::Migration def change create_table :messages do |t| t.integer :user_id […]

正确的模型数据结构? (我的第一个Rails应用程序)

我即将构建我的第一个Ruby on Rails应用程序(首先是xhtml和css之外的任何东西),我正在寻找一些有关模型结构的有用反馈。 我已经包含了一个模型来帮助可视化应用程序。 到目前为止我唯一需要的模型是: 1.一个电影模型(作为主要模型,命名电影,所以URL将看起来像,“sitename.com/movies/1-Willy-Wonka”)和 2. 用户模型 除了那些,我不知道该怎么做其他人; 比如’拍摄地点’,’演员’,最重要的是像’willy wonka’和’johnny depp’这样的属性。 我应该制作所有这些模型,甚至是属性吗? 如果是这样,是否可以并且建议让人们将模型创建为属性? 我尝试将应用程序视为由表单创建并存储在数据库中的数据,并且使用该pov我无法决定如何将属性(字符 actor)连接到部分(演员,拍摄地点,艺术品等)内部电影列表; 同时允许属性本身成为相关属性/电影/甚至部分的超链接:点击“史蒂文斯皮尔伯格”将带您进入他所参与的电影的页面,他导演,制作,撰写的电影等。 思考?

如何在模型索引页面上添加创建/编辑模型function?

好的,我有一个非常简单的模型: ServiceType(id: integer, title: string, duration: integer, created_at: datetime, updated_at: datetime) 因为它如此简单,我应该有一个单独的页面来创建和更新这些类型的记录是荒谬的。 我想要做的是在我的索引页面上有一个表单,我可以用它来创建新记录,如果我点击编辑链接,我希望表单加载该记录,以便表单兼作创建/更新表单。 有没有人之前已经这样做过,或者有人知道某个博客文章显示了如何做到这一点? 编辑:使用Laheab下面发布的博客链接我在这一点:如果你使用Rails 3,Laheab的链接是你想要的,但要警告! 写它的人在他的代码中留下了大量明显的错误..寻找像*/ */而不是/* */坏评论块,并寻找他使用jQuery的时间,但留下了$ 。 如果你使用Rails 2.3.x,我已经发布了我的修改版本作为答案。

关闭Rails中的“updated_at”列

我有一个简单的“Log”模型,它记录调用控制器动作的事实。 这个“日志”记录的条目应该被创建一次并且从不改变。 此外,我将在数据库中有许多这些记录。 因此,不需要“updated_at”列(不需要浪费硬盘上的内存)。 如何告诉Rails只留下“created_at”列而不使用“updated_at”? 有没有办法让“Log”模型只读?

Rails从两个表连接:如何选择属性

在Rails 3.2.1中 我有: class Project < ActiveRecord::Base attr_accessible :name, :description has_many :subprojects end class SubProject < ActiveRecord::Base attr_accessible :id_name, :description, :num_alloc, :project_id belongs_to :projects end 如何在rails控制器中返回,该id_name包含“name”属性(来自Project模型)和id_name , description和num_alloc (来自SubProject模型)。 在控制器中,如果我做 @results= SubProject.joins(‘LEFT OUTER JOIN…….) @results只包含SubProject类的属性,因为SubProject.joins(…)返回一个SubProject对象吗? 那么如何从两个模型中返回一个具有属性的对象呢?

如何在Rails中为不同的用户建模

题 我有一个建立了授权和身份validation逻辑的用户模型。 现在我意识到我有三种不同类型的用户。 我想存储关于它们的不同信息。 在Rails中处理这个问题的最佳方法是什么? 基于当前阅读的思考 我看过STI但是从我读过的内容来看它是不合适的,因为我的数据库中会有很多NULL字段。 理想情况下,我不想为三种用户类型中的每一种复制身份validation/授权逻辑。 每个用户在应用程序中也将具有不同的function。

Rails:我如何建模偏好? 我应该使用has_many:through吗?

我有两个模型:User和HairColor。 用户只有一种头发颜色,但可以有许多头发颜色首选项。 对此进行建模的最佳方法是什么? 这是我开始做的事情: #models/user.rb class User :preferences end #models/hair_color.rb class HairColor < ActiveRecord::Base has_many :users end #models/preference.rb class Preference < ActiveRecord::Base belongs_to :user belongs_to :hair_color end 使用has_many:通过正确的方法? 如果我想将其扩展到其他属性,如“眼睛颜色”,该怎么办? (用户有一种眼睛颜色,但可能更喜欢许多眼睛颜色“