小编Fra*_*nez的帖子

submit_tag rails表单中的bootstrap图标

我有这样的形式:

<%= form_tag(user_pages_path(current_user), :method => "get") do %>
  <%= text_field_tag :update, 'yes', type: "hidden"  %>
  <%= submit_tag "Update list", :class => "btn btn-default" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我想在按钮中添加一个图标.我正在使用bootstrap,所以我必须包含以下代码:

<i class=" icon-repeat"></i>
Run Code Online (Sandbox Code Playgroud)

¿有关如何在表单按钮中包含此代码的任何想法?

forms ruby-on-rails twitter-bootstrap

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

Docker,如何在图像中运行.sql文件?

这是我第一次使用Docker,我不确定我是否做得很好.

我有一个依赖于Mysql数据库的rails应用程序,所以我已经配置了docker-compose.yml这样的文件:

db:
  image: library/mysql:5.6
  environment:
    MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  expose:
    - "3306"
  ports:
    - "3306:3306"

rails-app:
  build: .
  dockerfile: Dockerfile
  environment:
    RAILS_ENV: development
  links:
    - db
  volumes:
    - ".:/home/app"
  volumes_from:
    - bundle

  ... omitted lines ...
Run Code Online (Sandbox Code Playgroud)

然后,如果我运行以下内容:

$ docker-compose run db mysql --host=$DOCKER_LOCALHOST --port=3306 --protocol=tcp -u root < shared/create_common_tables.sql
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.99.100' (111)
Run Code Online (Sandbox Code Playgroud)

这听起来很正常,因为我怀疑我必须build在一些链接到的容器之前db.

我知道这个,因为如果按此顺序运行:

$ docker-compose build rails-app
$ docker-compose run -e RAILS_ENV=development rails-app …
Run Code Online (Sandbox Code Playgroud)

mysql ruby-on-rails dockerfile docker-compose

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

OAuth2和Omniauth之间的区别

我已经阅读了很多关于Omniauth和OAuth2的内容,以及Omniauth如何使用OAuth,但我并不了解每个内容的目标是什么.

例如,我知道有了Omniauth,我可以回复发送params

@auth [ 'omniauth.params']

但如果我使用OAuth,没有Omniauth,我可以这样做吗?

我真正的问题是我不明白它们之间的区别,Omniauth的结束和OAuth的开始,以及我可以用Omuth来做什么,这是OAuth无法实现的.

ruby-on-rails oauth omniauth

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

如何使用地理编码宝石获得时区?

我必须在time_zone_select我的Rails应用程序中添加一个.我正在考虑一些宝石根据用户请求设置默认值,但我已经看到该项目已经geocode为此目的安装了gem.

有没有办法通过这个宝石获得时区?

ruby timezone ruby-on-rails geocode

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

Facebook上的页面类别列表

我正在开发一个Facebook搜索,我想列出所有的页面类别(不相关,但我正在使用koala ruby​​ gem):

使用type ="page"进行搜索的结果如下:

{"category"=>"Community", "name"=>"Koala", "id"=>"7356642860"}
{"category"=>"Product/service", "name"=>"Koala Groupe", "id"=>"188919981197745"}
{"category"=>"Public figure", "name"=>"Cushelle Koala", "id"=>"109202405786555"}
{"category"=>"Dancer", "name"=>"Koala Dance Bots", "id"=>"208563099183596"}
{"category"=>"Musician/band", "name"=>"Kid Koala", "id"=>"17527901121"}
{...}
Run Code Online (Sandbox Code Playgroud)

我正在尝试开发一个表单,以允许用户实现更精确的搜索.

然后,我希望用户有一个类别列表,但是:如何获取Facebook页面类别列表?

facebook-page facebook-graph-api koala

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

Capybara:点击图标类找到的元素

我想检查一下,当单击图标链接时,current_path 是“显示”操作的路径。

因此,鉴于此 HTML:

<a class="btn btn-xs" href="/admin/hotels/1">
   <i class="fa fa-eye fa-lg"></i>
</a>
Run Code Online (Sandbox Code Playgroud)

这个水豚测试:

describe "GET /hotels", js:true do
  before :each do
    @hotel = create(:hotel)
    visit admin.hotels_path
  end
  it "eye icon links to show" do
    find(:css, 'i.fa.fa-eye.fa-lg').find(:xpath,".//..").click
    expect(current_path).to eq(admin.hotel_path(@hotel))
  end
end
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

   1) Hotels index hotel creation GET /hotels eye icon link to show
      Failure/Error: expect(current_path).to eq(admin.hotel_path(@hotel))

   expected: "/admin/hotels/560bb674467261c7a4000002"
        got: "/admin/hotels"
Run Code Online (Sandbox Code Playgroud)

我推断这find(:css, 'i.fa.fa-eye.fa-lg').find(:xpath,".//..").click不像我期望的那样工作。

的执行find(:css, 'i.fa.fa-eye.fa-lg').find(:xpath,".//..")正在返回:

=> #<Capybara::Element tag="a">
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

rspec ruby-on-rails capybara

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

has_one 关系自动设置 nil 如果多于一个

给出一个有has_one关联的两个模型:

class ShopInfo
  belongs_to :shop
end

class Shop
  has_one :shop_info
end


s = Shop.create
ss1 = s.create_shop_info
Run Code Online (Sandbox Code Playgroud)

在我的代码的其他地方,我做

ss2 = s.create_shop_info 
Run Code Online (Sandbox Code Playgroud)

此后,ss1.shop_id 设置为 nil,因此 ss1 现在是孤儿记录。

有没有办法删除以前的记录而不是将它们设置为零?

activerecord ruby-on-rails has-one

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

Docker,其他所有正在运行的服务均被拒绝连接

我在本地安装的docker无法访问其他端口。

这是我的docker-compose.yml文件:

db:
  image: library/mysql:5.6
  environment:
    MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  expose:
    - "3306"
  ports:
    - "3306:3306"

mailcatcher:
  image: yappabe/mailcatcher
  ports:
    - "1025:1025"
    - "1080:1080"

rails-app:
  build: .
  dockerfile: "Dockerfile"
  environment:
    RAILS_ENV: development
  links:
    - mailcatcher
    - db
  command: bundle exec rails server -p 3005 -b '0.0.0.0'
  volumes:
    - ".:/home/app"
  volumes_from:
    - bundle
  expose:
    - "3005"
  ports:
    - "3005:3005"
Run Code Online (Sandbox Code Playgroud)

这是mailcatcher的配置config/environments/development.rb

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { address: "localhost", port: 1025 }
Run Code Online (Sandbox Code Playgroud)

这是我运行Rails应用程序的方式:

docker-compose run --service-ports rails-app
Run Code Online (Sandbox Code Playgroud)

这是我在运行时看到的docker ps …

port ruby-on-rails microservices docker-compose

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