我做了一个bundle show并获得了一个gem目录的完整路径.
不幸的是,我删除了目录rm -r gem_path.然后我的rails应用程序不再工作了.如果我尝试启动服务器或启动rails控制台,则会输出以下错误:
<class:Application>:未初始化的常量MyAPP::Application::Gem(NameError)
我该怎么做才能还掉它?
我试图bundle install或bundle update希望强制捆绑搜索gem并将其安装回来,但是没有用.
我也尝试删除Gemfile.lock并运行bundle install.什么都没有改变,同样的错误.
有问题的宝石就是可以作为标记.
我写了一个函数,输出一个SELECT以文本形式组成的PostgreSQL 查询.现在我不想再输出文本,但实际上SELECT对数据库运行生成的语句并返回结果 - 就像查询本身一样.
CREATE OR REPLACE FUNCTION data_of(integer)
RETURNS text AS
$BODY$
DECLARE
sensors varchar(100); -- holds list of column names
type varchar(100); -- holds name of table
result text; -- holds SQL query
-- declare more variables
BEGIN
-- do some crazy stuff
result := 'SELECT\r\nDatahora,' || sensors ||
'\r\n\r\nFROM\r\n' || type ||
'\r\n\r\nWHERE\r\id=' || $1 ||'\r\n\r\nORDER BY Datahora;';
RETURN result;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION data_of(integer) OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)
sensors …
有人可以帮我弄清楚我在哪里得到这个错误.我知道它可能是双重删除或类似的东西.对于背景,这是霍夫曼树的一个实现,你可以在维基百科上轻松实现.
int main()
{
ifstream input;
input.open("input.txt");
MinPriorityQueue<CharCountNode> heap;
map<char, int> m;
while(input.good())
m[input.get()] += 1;
for( map<char, int>::const_iterator it = m.begin(); it != m.end(); ++it )
heap.enqueue(CharCountNode(it->first, it->second));
while(heap.getSize() > 1)
{
CharCountNode a, b, parent;
a = heap.dequeue();
b = heap.dequeue();
parent = CharCountNode('*', a.getCount() + b.getCount());
parent.left = &a;
parent.right = &b;
heap.enqueue(parent);
}
}
Run Code Online (Sandbox Code Playgroud) <%= link_to 'New Post', new_post_path %>
Run Code Online (Sandbox Code Playgroud)
这会产生链接new_post_path.以前我使用过<input type="submit" class="new" name="Addlist" value="Add New" />类似按钮的东西.那么如何让链接看起来像erb中的按钮?
我有一个项目列表,我在我的节目视图中循环.这一切都很好.但是,我想得到每个项目前面的数字,每个循环递增(i = 0,i ++你知道钻孔).
现在,我怎么能在Rails中做到这一点?这就是我现在所得到的:
<% i = 0 %>
<% @trip.triplocations.each do |tl| %>
<article id="<%= dom_id(tl) %>">
<strong> <%= tl.title %> </strong>
<p>
<%= tl.description %>
</p>
</article>
<% end %>
Run Code Online (Sandbox Code Playgroud) 我想邀请那些在他们的网址中传递电子邮件的人:
localhost:3000/invite_me/email@gmail.com
Run Code Online (Sandbox Code Playgroud)
我试过这个,match但它没有用.
match "/invite_me/:email" => "application#invite_me",
:constraints => { :email => '/.+@.+\..*/' }
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
No route matches [GET] "/invite_me/waldyr.ar@gmail.com"
Run Code Online (Sandbox Code Playgroud)
rake路线输出:
root / application#index
/invite_me/:email(.:format) application#invite_me {:email=>"/.+@.+\\..*/"}
Run Code Online (Sandbox Code Playgroud) 我有三个独立的设计模型,我有三个不同的sign_in屏幕.这三个人都有一个仪表板:
devise_for :md1
devise_for :md2
devise_for :md3
match 'md1/dashboard' => 'md1#dashboard', :via => :get
match 'md2/dashboard' => 'md2#dashboard', :via => :get
match 'md3/dashboard' => 'md3#dashboard', :via => :get
Run Code Online (Sandbox Code Playgroud)
我希望当有一个mdX成功登录时,它会重定向到mdX#dashboard,如果有可能通过GET.我试过了:
devise_scope :md1 do
root :to => 'md1#dashboard'
end
devise_scope :md2 do
root :to => 'md2#dashboard'
end
devise_scope :md3 do
root :to => 'md3#dashboard'
end
Run Code Online (Sandbox Code Playgroud)
然后当我用md1成功登录时,我被重定向到md1仪表板,但是当我成功登录md2时,我被重定向到md1的sign_in屏幕.然后我尝试了:
def after_sign_in_path_for resource
dashboard_path resource
end
Run Code Online (Sandbox Code Playgroud)
但是没有这样的方法.有没有一种简单的方法可以做到这一点,或者必须与if每个模型的语句一起使用?
一些路线可以更好地理解和获取更多信息以获得更好的解决方案
md1_dashboard GET /md1/dashboard(.:format) md1#dashboard
md2_dashboard GET /md2/dashboard(.:format) md2#dashboard
md3_dashboard GET /md3/dashboard(.:format) md3#dashboard
Run Code Online (Sandbox Code Playgroud)
提前致谢
我有从几个不同的XML数据库转储导入的哈希行,看起来像这样(但使用不同的键):
{"Id"=>"1", "Name"=>"Cat", "Description"=>"Feline", "Count"=>"123"}
Run Code Online (Sandbox Code Playgroud)
我尝试使用#to_i但它将非数字字符串转换为0:
"Feline".to_i
# => 0
Run Code Online (Sandbox Code Playgroud)
但我想是一种方式"Feline"仍然是一个字符串,而Id与Count在上面的例子中变得整数1和123.
有一种简单的方法来转换只有字符串值,其数字为整数?
我正在尝试测试从 CSV 导入产品的操作。
我能够通过第一个测试。params[:file]作为字符串发送到控制器,这"#<StringIO:0x007fc0d40a0bd0>"不会使我的测试失败,但这不是正确的行为。
第二次测试我收到以下错误
private method `gets' called for #<ActionDispatch::Http::UploadedFile:0x007fd391de0a00>
Run Code Online (Sandbox Code Playgroud)
这是我的规范(内容是 CSV 内容)
# spec/controllers/products_controller_spec.rb
describe 'POST import with file' do
before do
post :import, file: file
end
context 'with invalid data' do
subject { Spree::Product.count }
let(:file) { StringIO.new("") }
it { is_expected.to eq 0 }
end
context 'with valid data' do
subject { Spree::Product.count }
let(:file) { ActionDispatch::Http::UploadedFile.new(params) }
let(:params) do
{
original_filename: 'file.csv',
content_type: 'text/csv',
tempfile: StringIO.new(content)
}
end
it { is_expected.to …Run Code Online (Sandbox Code Playgroud) 如果我在元素中有一串文本,那么如果该文本与给定字符串匹配,jQuery中返回的最有效方法是什么.
例如,
<div id="myDiv">This is a test</div>
$("#myDiv").eq("This is as test"); // returns true or false
Run Code Online (Sandbox Code Playgroud)
但是eq不是正确的功能