根据Ruby on Rails约定,控制器名称是复数形式的,而模型名称是单数形式的。例如:一个用户控制器,但一个用户模型。
rails generate controller Users
rails generate model User name:string email:string
现在打开迁移文件
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :email
t
在Rails中有这个模型:
class User < ActiveRecord::Base
def self.create_auth_from_hash(hash)
# stuff
end
end
我希望对create_from_auth_hash方法进行存根,以便隔离控制器行为。显然,当前的语法是:
expect_any_instance_of(User).to receive(:create_from_auth_hash).and_return(false)
但是,即使我没有发现错误,模型方法仍然被调用。
如何使用存根模型方法?我使用的是Rails 4.1和RSpec
我有一个带有子类organization.rb,company.rb等的模型group.rb,我想知道是否有一种方法可以创建一个名称为"Rails初学者协会“的组织,而不是创建一个名称为"Rails初学者协会”的公司?现在看来,如果我做了像Organization.find_or_create_by_name(:name => @profile.organization)这样的事情,我最终不仅创建了一个组织,还创建了一家公司和group.rb的所有其他子类,其名称是我在控制器中提供的。
任何想法/指导都将不胜感激!
我的模型是这样的:
class Group < A
快速rails部分,假设我有两个模型用户和角色,并且我想基于某个角色创建一个用户索引/列表,我该如何在我的控制器中构建它
它是不是像这样
#first create the association
@user = role.build
#then build the index based on a Role of role_id = 2
@userrole = @user.where(@user.role_id == 2)
我知道这是伪代码,但这是正确的吗?什么是正确的rails代码?
class User < ActiveRecord::Base
attr_accessor :password
Rails.logger.info "xxy From outside"
def before_create
Rails.logger.info "xxy From inside the before_create"
end
end
当在控制器中调用User.save时,我的开发日志提取了xxy From outside而不是xxy From inside the before_create,所以我是否可以正确地
使用rails4,我正在尝试实现通知模型。在这里,我使用ActiveSupport::Concern将通知相关代码从模型中分离出来。create_notification_module.rb
module CreateNotificationModule
extend ActiveSupport::Concern
include ActiveModel::Dirty
included do
after_update :notify
after_create :notify
after_create :notify
end
def
因此,我看到在Rails 3中建议的地区(国际化)结构是基于用于模型和视图目录的类似的文件分离(请参阅页面上的3.4地区文件组织)。
我有两个问题:
1)对于控制器中使用的通知-例如,在重定向期间,“您的记录已成功添加”,是否打算在区域设置下也有控制器目录?或者我应该只使用根区域设置目录中的默认en.yml文件,并具有以下内容:
en:
notices:
create_success: "Your record was added successfully."
update_success: "Your record was updated succ
我使用RspecRails 3.2.2、RSpec2.9.0和RspecRails 2.9.0。我想测试create控制器操作,但我不知道如何使其成为“正确”/“正确”的方式。我“脚手架”模型,控制器,视图,.因此,在这些文件中,我有Rails生成器生成的通用代码;在我的规范文件中,我有:
it "assigns @article" do
new_article = FactoryGirl.build(:article)
Article.should_receive(:new).and_return(new_article)
post :create
assig