小编nkt*_*kyo的帖子

rspec,未知属性问题

我正在通过(优秀)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,在控制台中,我可以在测试中创建具有完全相同语法的用户.创建初始表后,通过迁移添加了此"用户名"字段,是否还需要在此处更新其他文件?

谢谢,

testing rspec ruby-on-rails

14
推荐指数
2
解决办法
3040
查看次数

类型错误:没有将 nil 隐式转换为字符串错误

我正在尝试设置我们的 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)

ruby

6
推荐指数
1
解决办法
2万
查看次数

Rails Beginner - 将函数放入哪个控制器?

铁杆新手,我认为这是一个基本问题.

在管理视图中,将对不同的数据模型执行不同的操作.我有一个布局"admin",其中包含用户单击以加载表单以编辑各种数据集的各种选项卡.

在这个视图中可以编辑的所有内容的控制器是否应该在admin_controller中(即,有一个edit_product,edit_user ...),或者最好是将每个模型的函数保留在控制器中(比如users_controller,products_controller,orders_controller)并在控制器中指定使用管理布局?

我正在完成我的第一个rails项目,看起来无论哪种方式都有效,但显然我希望遵循正确的约定,所以任何提示或关于此主题的文章的链接都将受到赞赏.

谢谢,

ruby-on-rails

1
推荐指数
1
解决办法
186
查看次数

根据条件渲染,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?但没有变化.

ruby ruby-on-rails

1
推荐指数
1
解决办法
775
查看次数

标签 统计

ruby-on-rails ×3

ruby ×2

rspec ×1

testing ×1