小编Mar*_*iwa的帖子

在Rails控制台中手动更新属性值的验证问题

我有一个简单的问题.我想User.find(1)在rails控制台中更改一些字段值.

我试过了:

u = User.find(1)
u.update_attributes(roles_mask: 3)
Run Code Online (Sandbox Code Playgroud)

并得到了false回报.当我检查时u.errors.full_messages,我发现这是因为密码验证存在问题has_secure_password.如何在控制台中手动更新?

ruby-on-rails

44
推荐指数
3
解决办法
5万
查看次数

期望raise_error和测试失败,因为它引发了这个错误

我有简单的测试用例:

it "is removed when associated board is deleted" do
  link = FactoryGirl.create(:link)
  link.board.destroy
  expect(Link.find(link.id)).to raise_error ActiveRecord::RecordNotFound
end
Run Code Online (Sandbox Code Playgroud)

它输出失败:

1) Link is removed when associated board is deleted
   Failure/Error: expect(Link.find(link.id)).to raise_error ActiveRecord::RecordNotFound
   ActiveRecord::RecordNotFound:
     Couldn't find Link with id=1
   # ./spec/models/link_spec.rb:47:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

rspec ruby-on-rails-3

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

一张桌子 - 两个型号

我有模型的层次结构Board(使用祖先gem实现).

我想要有两个模型,而不是一个模型和一些范围:Board对于根级元素(ancestry列值是nil),Category对于其余的(ancestry列值是not nil).他们会使用同一张桌子boards.

我怎么能这样做?

ruby-on-rails ruby-on-rails-3

10
推荐指数
2
解决办法
4870
查看次数

如何click_link没有文字?

如何点击Capybara的click_link方法下面的链接?

<a data-method="delete" href="/users/sign_out" rel="nofollow">
  <span title="Sign out" class="glyphicon glyphicon-off"></span>
</a>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails capybara

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

ActiveAdmin - 为has_many/belongs_to关系生成表单下拉列表

我有Gallery和Imagehas_many/belongs_to关系的模型.

我的admin的admin_active表单如下所示:

form do |f|
  f.inputs "Image Details" do
    f.input :gallery_id
    f.input :file
  end
end
Run Code Online (Sandbox Code Playgroud)

相反或输入gallery_id的数字我想从下拉列表中选择图库名称.通过deafault这个表单看起来像这样,但我不知道如何手动执行此操作.

ruby-on-rails ruby-on-rails-3 activeadmin

7
推荐指数
2
解决办法
9296
查看次数

rbenv和passenger - 无法从非root用户帐户安装(sudo组)

我只是想在Ubuntu 12.04上设置我的第一个rails服务器.我安装了rbenv(作为用户:deployer使用组sudo和admin).现在尝试根据他们的文档安装乘客.

我passenger-install-nginx-module开始运行然后我得到了

Please specify a prefix directory [/opt/nginx]: 

--------------------------------------------

Permission problems

This installer must be able to write to the following directory:

/opt/nginx

But it can't do that, because you're running the installer as deployer.
Run Code Online (Sandbox Code Playgroud)

好的,我跑了sudo passenger-install-nginx-module然后跑了sudo: passenger-install-nginx-module: command not found.

这是否意味着我必须以root用户身份安装它,为root用户安装整个rbenv然后安装乘客?我读过的每个教程都是从非root用户帐户运行的:/,它对我不起作用.

ruby passenger ruby-on-rails-3 rbenv

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

--skip-stylesheets和--no-stylesheets之间有什么区别?

我想生成没有样式表的脚手架,我找到了这两个标志:--skip-stylesheets, --no-stylesheets. 他们之间有什么区别?

ruby-on-rails-3

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

使用 simple_form 引导输入组包装器

我将 simple_form 与 bootstrap 包装器一起使用,但不知道如何做到这一点。

我想生成这样的输入:

<div class="form-group string optional event_start_time_date ">
  <label class="string optional control-label" for="event_start_time_date">Start date</label>
  <div class="input-group date" id="date_picker">
    <input class="string required form-control" type="text" name="event[start_time_date]" id="event_start_time_date">
    <span class="input-group-addon">
      <span class="glyphicon glyphicon-calendar"></span>
    </span>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的包装看起来像这样:

config.wrappers :input_group, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
  b.use :label, class: 'control-label'
  b.wrapper :input_group_div, tag: 'div', class: 'input-group' do |ba|
    ba.use :input, class: 'form-control'
  end

  b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
  b.use :hint,  wrap_with: { tag: 'p', …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails simple-form twitter-bootstrap ruby-on-rails-4

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

React - 单独脚本中的组件不起作用

我正在尝试学习react.js,但却陷入了"Hello World"脚本.

我的index.html:

<!DOCTYPE html>
<html>
  <head>
    <script src="https://fb.me/react-0.13.3.js"></script>
    <script src="https://fb.me/JSXTransformer-0.13.3.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <script type="text/jsx" src="src/helloworld.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

和src/helloworld.js:

React.render(
  <h1>Hello, world!</h1>,
  document.getElementById('example')
);
Run Code Online (Sandbox Code Playgroud)

当我里面把这个代码<script>在index.html文件中它工作正常,但是当我将其移动到单独的文件中我得到的空白页,并控制台错误:

XMLHttpRequest cannot load file:///home/marcin/Projects/react/src/helloworld.js. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

这有什么问题?

html javascript reactjs

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

如何使用RSpec测试CSV导入?

我有使用存根的问题,不知道如何测试这个类方法:

class Artist < ActiveRecord::Base
  def self.import(file)
    CSV.foreach(file.path, headers: true) do |row|
      Artist.find_or_create_by(row.to_hash)
    end
  end
end

RSpec.describe Artist, type: :model do
  describe ".import" do
    before :each do
      create(:artist, name: 'artist1', facebook_url: nil)
      create(:artist, name: 'artist2', facebook_url: "facebook_url")
    end

    context "when facebook_url is empty" do
      it "updates facebook_url" do
        #Here I should somehow stub CSV with name, facebook_url
        #headers and row: artist1,artist1_facebook_url - HOW ?

        Artist.import(file)
        expect(Artist.find_by(name: 'artist1').facebook_url).to eq "artist1_facebook_url"
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我该如何存根以使此测试工作?

rspec ruby-on-rails

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