我正在通过(优秀)railstutorial.org网站上有一个关于rspec的基本问题.
当我在新用户模型上运行以下测试时,我收到"未知属性:用户名"消息和失败的测试.
before(:each) do
@attr = { :lname_e => "User", :fname_e => "Test", :email => "user@example.com", :username => "testUser" }
end
it "should create a new instance given valid attributes" do
User.create!(@attr)
end
Run Code Online (Sandbox Code Playgroud)
错误语法是
Failures:
1) User should create a new instance given valid attributes
Failure/Error: User.create!(@attr)
unknown attribute: username
# ./spec/models/user_spec.rb:11:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)
该字段位于users表(字符串)中,它在模型中为attr_accessible,在控制台中,我可以在测试中创建具有完全相同语法的用户.创建初始表后,通过迁移添加了此"用户名"字段,是否还需要在此处更新其他文件?
谢谢,
我正在尝试设置我们的 CRM 系统以在添加特定类型的记录(列表)时在 wordpress 中创建帖子。
我找到了本教程,并在 rails 控制台中对其进行了测试。
我的班级是:
require 'rubygems'
require 'open-uri'
require 'json'
require 'net/http'
# Please note that the vanilla wp-json-api plugin does not support user authentication for create_post.
# Check out my fork for authentication support: https://github.com/Achillefs/wp-json-api
class Listing
API_URI = 'http://my_wp_url/api/'
API_USER = 'my_username'
API_PASS = 'my_password'
attr_accessor :title, :address, :sell_price, :type
def initialize(opts = {})
# set all values if valid
opts.each do |key,val|
begin
self.send(:"#{key}=",val)
rescue NoMethodError => e
raise ArgumentError("#{key} …Run Code Online (Sandbox Code Playgroud) 铁杆新手,我认为这是一个基本问题.
在管理视图中,将对不同的数据模型执行不同的操作.我有一个布局"admin",其中包含用户单击以加载表单以编辑各种数据集的各种选项卡.
在这个视图中可以编辑的所有内容的控制器是否应该在admin_controller中(即,有一个edit_product,edit_user ...),或者最好是将每个模型的函数保留在控制器中(比如users_controller,products_controller,orders_controller)并在控制器中指定使用管理布局?
我正在完成我的第一个rails项目,看起来无论哪种方式都有效,但显然我希望遵循正确的约定,所以任何提示或关于此主题的文章的链接都将受到赞赏.
谢谢,
我有一个显示嵌套关系的表单.渲染嵌套子对象的调用如下所示:
<% if @fpimgblocks %>
??<% f.fields_for @fpimgblocks do |builder| %>
????<%= render 'fpimgblock_fields', :f => builder %>
??<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
@fpimgblocks是一个查找的结果,我已经验证了没有结果,所以我希望这不会渲染.但是,即使未初始化对象,也会呈现局部.然后,当我提交表单时,这会返回一个nil_class错误.
if语句中的语法是错误还是什么?我已经尝试过更改为"除非@ fpimgblocks.nil?但没有变化.