小编Aks*_*s..的帖子

如何使用rails 3中的活动管理员显示名称而不是id

你好我工作的一个Rails 3.2.9应用程序,它使用的设计ActiveAdmin.我有像用户和公司这样的模型.我希望管理员从特定公司的注册用户列表中选择一个经理.

我的用户表包含以下字段:id,username,email,company_id,password等

我公司的表有:id,company_name,manager_id(这只是用户的id),created_at等

在管理员为公司选择了经理之后,我希望他的名字(来自用户表的用户名)出现在公司的索引页面中,但现在只有manager_id显示在索引页面中.(在编辑时,选择管理器的下拉列表显示用户名列表)

请告诉我如何使用查询/连接语句来完成此任务

这是管理员的我的companies.rb文件

ActiveAdmin.register Company do
  index do
    column "Company", :name
    column :address
    column "No. of Subscriptions", :no_of_licenses
    column "Manager", :manager_id
    default_actions
  end
  filter :name

  form do |f|
    f.inputs "Company Details" do
      f.input :name
      f.input :address
      f.input :no_of_licenses, :label => 'No of Subscriptions'
      f.input :manager_id, :as => :select, :collection => User.joins('LEFT OUTER JOIN companies ON users.company_id = companies.id').map{|u| [u.username, u.id]} 
    end
    f.buttons
  end  
end
Run Code Online (Sandbox Code Playgroud)

join ruby-on-rails-3 activeadmin

5
推荐指数
2
解决办法
7080
查看次数

如何删除应用程序中的ActiveAdmin链接?

使用此ActiveAdmin gem在应用程序的每个页面上看作"由ActiveAdmin提供支持"的链接是否可以删除?如果是的如何?链接是否有任何合法性?

hyperlink ruby-on-rails-3 activeadmin

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

错误:无法在Windows上构建gem本机扩展

我在安装' redcarpet'gem 时遇到以下错误.它虽然在我的朋友机器上安装没有问题.(我想安装它来运行yard)Ruby版本:1.9.3

cmd输出:

D:\Learning\Common_POM_FW\SampleProjects>yard
[error]: Missing 'redcarpet' gem for Markdown formatting. Install it with `gem install redcarpet`

D:\Learning\Common_POM_FW\SampleProjects>gem install redcarpet
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing redcarpet:
        ERROR: Failed to build gem native extension.

    C:/Ruby193/bin/ruby.exe -r ./siteconf20141009-6544-978w4t.rb extconf.rb
creating Makefile

make  clean
Makefile:165: *** target pattern contains no `%'.  Stop.

make
Makefile:165: *** target pattern contains no `%'.  Stop.

make failed, exit code 2

Gem …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems devkit

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

使用Watir获取表的整个列文本

我知道使用以下代码我们可以在WATIR中获取整个行文本

# row 2 - entire text
table1 = browser.table(:id => "table")
puts table1[1].text
Run Code Online (Sandbox Code Playgroud)

我们怎么能得到像这样的整个列文本?

ruby element watir

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

使用gsub或sub替换一个字符

我想用大写字母替换字符串的第三个字符.使用gsubsub导致以下错误:

"Hiiiii".sub!(string[2,1],string[2,1].upcase!) # => hIiiii

"Hello".gsub!(string[2,1],string[2,1].upcase!) # => heLLo
Run Code Online (Sandbox Code Playgroud)

虽然gsub意外地取代了所有相似的字符,但sub取代了第一次出现,无论我提到的位置如何.

任何人都可以建议我如何sub才能在第三个角色之后开始工作?

ruby regex string gsub

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

如何使用`gsub`替换具有相同字符串的多个子字符串

我想将不同的字符/子字符串更改为单个字符或nil.我想换"How to chop an onion?""how-chop-onion".

string
.gsub(/'s/,'')
.gsub(/[?&]/,'')
.gsub('to|an|a|the','')
.split(' ')
.map { |s| s.downcase}
.join '-'
Run Code Online (Sandbox Code Playgroud)

使用管道字符|不起作用.我怎么能这样做gsub

ruby string replace gsub

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

我们可以看到随机械宝石一起发送的请求吗?

我正在尝试使用机械化gem构建GET请求,并且不断收到重定向错误。首先,我想知道是否有一种方法可以查看使用不同参数构建的实际请求,然后再发送?

@agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
cookie = Mechanize::Cookie.new('xyz_session', @tokenid)
cookie.domain = ".mydomain.com"
cookie.path = "/"
@agent.cookie_jar << cookie
@agent.redirection_limit=0
puts @agent.cookies
body = {}.to_json
#@agent.set_proxy("localhost",3000)
@agent.request_headers = {'Content-Type' => "application/json"}
       @agent.get("https://access.test.api.mydomain.com/oidc/v1/user/authorise?response_type=code&redirect_uri=http://localhost&client_id=testclient1&service=AccountSignInService&state=any-state") 
       expect(response.code).to eql(302), "Authorization Code couldn't be received"
Run Code Online (Sandbox Code Playgroud)

我不断 Redirect limit of 0 reached (Mechanize::RedirectLimitReachedError)

如果我没有设置重定向限制,我得到 connection refused: localhost:3000 (Net::HTTP::Persistent::Error)

因此,我想首先检查我的请求是否以我希望的方式发送。

ruby redirect get mechanize

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

为什么不能在类级别使用 System.setProperty?

我曾尝试System.setProperty在 main 方法中使用,没有任何问题,但是当我切换到TestNGSelenium 学习的一部分时,我意识到我们无法System.setProperty在类级别编写。它应该位于方法级别或位于static块中。我只是想了解 Java 的什么特性迫使我们这样做。

public class NewTest {
    public String baseUrl = "http://newtours.demoaut.com/";
    static {
        System.setProperty("webdriver.chrome.driver","D:\\paths\\chromedriver.exe");    
    }

    WebDriver driver = new ChromeDriver();

    @Test
     public void f1() {
      ...}
   }
Run Code Online (Sandbox Code Playgroud)

在静态块之外写入此内容会显示编译错误,例如“此行有多个标记,语法错误”

java testng selenium

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