你好我工作的一个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) 使用此ActiveAdmin gem在应用程序的每个页面上看作"由ActiveAdmin提供支持"的链接是否可以删除?如果是的如何?链接是否有任何合法性?
我在安装' 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) 我知道使用以下代码我们可以在WATIR中获取整个行文本
# row 2 - entire text
table1 = browser.table(:id => "table")
puts table1[1].text
Run Code Online (Sandbox Code Playgroud)
我们怎么能得到像这样的整个列文本?
我想用大写字母替换字符串的第三个字符.使用gsub
或sub
导致以下错误:
"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
才能在第三个角色之后开始工作?
我想将不同的字符/子字符串更改为单个字符或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
?
我正在尝试使用机械化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)
因此,我想首先检查我的请求是否以我希望的方式发送。
我曾尝试System.setProperty
在 main 方法中使用,没有任何问题,但是当我切换到TestNG
Selenium 学习的一部分时,我意识到我们无法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)
在静态块之外写入此内容会显示编译错误,例如“此行有多个标记,语法错误”