Tag: ruby on rails 4

协会不工作

我有三个型号: 部门 class Department :destroy has_many :waitingrooms, :dependent => :destroy end 等候室与字段patient_id:integer和department_id:integer class Waitingroom < ActiveRecord::Base belongs_to :patient end 有department_id:integer 患者 department_id:integer class Patient < ActiveRecord::Base belongs_to :department has_many :waitingrooms end 病人在候诊室后,我救了一间候诊室! 所以现在我试图找回那些在部门候诊室里的病人: def index @waited = @current_department.waitingrooms.patients end 不知何故,它没有工作,它返回此错误: undefined method `patients’ for # 但这很奏效:我错了什么? 谢谢! def index @waited = @current_department.waitingrooms end

链接到INDEX视图中的关联模型

刚刚在我的SHOW视图中解决了链接到相关模型的问题,但同样的答案对我的INDEX视图不起作用。 我正在尝试做什么,而不能是制造商位,这是属于Miniature的模型。 表格很好,但我无法让制造商正确显示和链接。 对不起,这不清楚。 我的微缩模型index.html.erb All miniatures Name Material Manufacturer Scale Product Code Sculpted by Release date Admin Import Miniatures 这使得部分显示微缩模型: <%= link_to manufacturer.name, manufacturer_path(manufacturer) scale sculptor 我可以看到它不能像我的视图一样工作,因为我有一个命名实例|manufacturer| 我没有这里。 我想那时我需要在控制器中定义它? 在指数下? 这是我的(略微裁剪) MiniaturesController class MiniaturesController < ApplicationController before_action :signed_in_user, only: [:new, :create, :edit, :update] before_action :admin_user, only: :destroy def import Miniature.import(params[:file]) redirect_to root_url, notice: "Miniatures […]

如何正确使用collection_select以及自定义关联

我有一个像这样的患者档案模式: – class Profile < ActiveRecord::Base belongs_to :eyes, class_name: "EyeColor", foreign_key: "eyes" end 数据库表有一个名为eyes的整数 我有一个EyeColor模型,它只有一个ID和描述(颜色的文字) 我已经制作了一个表格,上面有一个collection_select: – 现在,当我尝试通过表单更新记录时,我得到以下内容: – ActiveRecord::AssociationTypeMismatch (EyeColor(#45428760) expected, got String(#19387428)) 我确信这很简单,但任何想法我做错了什么?

websocket-rails,websocket握手错误

我关注了websocket-rails github wiki页面上的文档,但是无法克服这个难题,我用​​chrome得到了这个错误: WebSocket connection to ‘ws://0.0.0.0:3000/websocket’ failed: Error during WebSocket handshake: Unexpected response code: 301 我安装了websocket-rails gem,生成了安装,我成功设置了config.middleware.delete Rack::Lock in development.rb ; 我正在使用Rails 4。 我认为: var dispatcher = new WebSocketRails(‘0.0.0.0:3000/websocket’); 我进入了chat_controller.rb : class ChatController < WebsocketRails::BaseController def initialize_session puts "Session Initialized" end def user_connected puts 'user connected' end end 在我的events.rb : WebsocketRails::EventMap.describe do subscribe :client_connected, […]

从命令行添加has_many和belongs_to migration

我生成了两个模型,现在想要实现活动记录关联。 我有设计师和物品。 Item属于Designer,Designer有许多Items。 我的模型看起来像这样: 应用程序/模型/ item.rb的: class Item < ActiveRecord::Base belongs_to :designer validates :designer_id, presence: true end 应用程序/模型/ designer.rb: class Designer < ActiveRecord::Base has_many :items, dependent: :destroy end 即使在我运行rake db:migrate我的迁移也没有反映出新的关系。 他们展示了原始一代: class CreateDesigners < ActiveRecord::Migration def change create_table :designers do |t| t.string :name t.string :country t.string :about t.timestamps end end end class CreateItems < ActiveRecord::Migration […]

试图列出相关模型

我想我对如何编写实例深感误解。 Miniatures has_many制造商通过Productions表。 在微缩模型展示页面上,我试图列出当前微型的所有制造商,并将它们链接到制造商展示页面。 像这样: 不用说它不起作用。 它给出了“未定义的方法`制造商’”。 我尝试了很多不同的组合无济于事。 以下版本将所有制造商汇总到一个链接中,每个制造商都有一个微型产品,并链接到/制造商。 一团糟。 我一直致力于其他事情,并希望我能掌握这一点,但我很确定这对于我如何设置实例非常重要。 如果我更需要添加到控制器的东西,那么我可以在这里添加我的控制器代码。 任何帮助非常感谢。

Rails 4 postgres bug – 无法创建数据库,因为pg gem“缺失”,但事实并非如此

我使用rails edge(4.0)并在执行时: bundle exec rake db:create 我明白了 Specified ‘postgresql’ for database adapter, but the gem is not loaded. Add `gem ‘pg’` to your Gemfile. 我的Gemfile中有“gem pg”,我已经运行了bundle install … 这可能是什么原因? 谢谢

限制对rails中模型的任何访问

我意识到gem可能是我的情况的最佳答案,但我真的想要尽可能手动编程。 但我仍然接受任何有关gem的建议,以涵盖我想要的东西。 无论如何,关于这个问题…… 我有一个模型设备和普通模型用户(设计gem)有一个连接表devices_users。 设备有一个字段“user_ids”,这是一个整数来表示谁有权访问的用户ID(如果我有多个,那就是一个数组,但这与问题并不相关)。 如果user_ids字段不是他们的用户ID,我想完全限制对Device的访问。 当我完全说,我的意思是我有很多理论上可以访问它的地方: 1)我的模型中有多个方法在视图中调用,并直接访问设备数据 – 例如: if Device.all.where(:device_guid => model.device_id).first == nil 2)视图有时会直接调用Device,例如集合选择。 它不应该显示为一个可行的选择。 3)他们应该根本没有控制器访问权限。 没有显示,没有索引,没有。 (这似乎是最容易实现的,只是一个before_filter)。 我的大事 – 必须有一种简单的方法来完全限制访问。 我在应用程序控制器中所做的任何事情都只限制了控制器访问。 我试过的任何东西似乎都没有阻止访问模型中的方法(除非我单独限制每一个 – 我有很多),也没有视图(再次,除非我限制每个实例,我有很多)。 有没有一种简单的方法来完全限制它?

Rails转换编辑表单上的百分比值

我的Customer模型中有以下回调和方法。 before_save :convert_commission_percentage def convert_commission_percentage self.commission= commission.to_f/100.to_f end 这允许用户输入百分比为45并将其存储为.45 。 但是,在编辑时,此百分比的字段在编辑表单上显示为.45 ,导致该数字在更新时再次除以100。 有没有办法通过将编辑字段显示为45来防止这种情况发生?

在Rails 4.2.2中将请求参数截断,内容类型为“Application / xml”

我有以下观察: 我使用控制器和操作部署了一个示例Rails 4.2.2应用程序来接收POST请求。 现在如果我向这个应用程序发送POST请求,并且有一些POST主体说像{“1″=>”hello”,”2″=>”bye”}这样的哈希,并且请求的内容类型是”application/xml” ,我的Rails应用程序中没有收到任何参数。 如果我将同一请求的内容类型更改为其他内容,我将正确获取参数。 有人可以告诉我为什么Rails 4.2.2中存在这种行为,其POST请求的内容类型为”application/xml” 。