我有一个没有与之关联的模型的表单,所以我使用form_tag而不是form_for.正如所料,当用户提交表单时,每个字段都包含在params散列中.但是表单会发生很大变化,我宁愿在params哈希中有一个哈希值,它将保存所有表单字段值,这样我每次更改表单时都不必更改控制器.
有没有办法将表单字段值放入像form_for那样的嵌套哈希?我希望能够通过做类似的事情来获取所有表单字段并将它们转换为jsonparams[:form_fields].to_json
我有2个数据帧,其中一个数据帧具有另一个(但不是全部)行的补充信息.
names = df({'names':['bob','frank','james','tim','ricardo','mike','mark','joan','joe'],
'position':['dev','dev','dev','sys','sys','sys','sup','sup','sup']})
info = df({'names':['joe','mark','tim','frank'],
'classification':['thief','thief','good','thief']})
Run Code Online (Sandbox Code Playgroud)
我想从info上面的数据框中获取分类列,并将其添加到names上面的数据框中.但是,当我这样做时combined = pd.merge(names, info),结果数据帧只有4行长.所有没有补充信息的行都将被删除.
理想情况下,我会将缺失列中的值设置为unknown.导致数据框中有些人是有效的,有些是好的,其余的是未知的.
编辑:我收到的第一个答案之一建议使用合并outter似乎做了一些奇怪的事情.这是一个代码示例:
names = df({'names':['bob','frank','bob','bob','bob''james','tim','ricardo','mike','mark','joan','joe'],
'position':['dev','dev','dev','dev','dev','dev''sys','sys','sys','sup','sup','sup']})
info = df({'names':['joe','mark','tim','frank','joe','bill'],
'classification':['thief','thief','good','thief','good','thief']})
what = pd.merge(names, info, how="outer")
what.fillna("unknown")
Run Code Online (Sandbox Code Playgroud)
奇怪的是,在输出中我会得到一行,其结果名称是"bobjames",另一行的位置是"devsys".最后,即使bill没有出现在名称数据框中,它也会显示在结果数据框中.所以我真的需要一种方法来说明在这个其他数据框中查找一个值,如果你在这些列上发现了什么.
我有一个像这样的pandas DataFrame training.head()

DataFrame已按日期排序.我想制作一个散点图,其中广告系列的日期位于x轴上,成功率位于y轴上.我能够通过使用得到一个折线图training.plot(x='date',y='rate').但是,当我改变它时,training.plot(kind='scatter',x='date',y='rate')我得到一个错误:KeyError:你没有名为date'的项目
当我尝试制作散点图时,为什么我的索引列会消失?另外,我打赌我需要对那个日期字段做一些事情,这样它就不会像简单的字符串一样对待,不是吗?
额外的功劳,如果我希望每个帐号用不同的颜色绘制,我该怎么办?
我的脑袋疼
我有一些代码可以在一个长列中生成33个图形
#fig,axes = plt.subplots(nrows=11,ncols=3,figsize=(18,50))
accountList = list(set(training.account))
for i in range(1,len(accountList)):
training[training.account == accountList[i]].plot(kind='scatter',x='date_int',y='rate',title=accountList[i])
#axes[0].set_ylabel('Success Rate')
Run Code Online (Sandbox Code Playgroud)
我想把这些情节中的每一个都放到我上面评论过的图中,但我所有的尝试都失败了.我试着投入ax=i情节命令然后得到'numpy.ndarray' object has no attribute 'get_figure'.此外,当我缩小并用一个一个图中的单个绘图进行此操作时,我的x和y标度都会变为heck.我觉得我接近答案,但我需要一点点推动.谢谢.
很多时候,当我粘贴到vim中时,我会得到级联的缩进,这些缩进非常令人沮丧.结果看起来像这样
This is line one
This is line two
This is line three
This is line four
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法告诉vim将第二行到第四行与第一行对齐.如果第一行文本从光标位置6开始,有没有办法说"让接下来的十行也从第6位开始?"
我构建了一个应用程序,允许用户使用omniauth-ldap对Active Directory进行身份验证.如果这是新用户,则成功的身份验证将根据从AD返回的信息为其创建用户.如果用户已存在,则只会将其登录.用户不会注册该应用程序,只需使用AD凭据登录即可.我从不希望用户使用数据库凭据登录.
我无法弄清楚如何摆脱或改变一些路线.例如,如果用户访问/ sign_in,他们将获得数据库身份验证.如果用户访问sign_up,他们将被带到页面注册该站点.我希望访问/ sign_in的用户进入LDAP登录,即/ users/auth/ldap.我想我需要制作一个自定义路线,但我不确定我需要哪个控制器来引导用户.我想让sign_up页面完全消失.
现在我有一个允许用户使用ldap登录的链接,其路径是user_omniauth_authorize_path(:ldap).我只是不确定如何将其转换为我的config/routes.rb文件理解的内容.这就是我现在在路线上所拥有的.
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do
get 'sign_in', :to => 'devise/sessions#new', :as => :new_user_session
get 'sign_out', :to => 'devise/sessions#destroy', :as => :destroy_user_session
end
Run Code Online (Sandbox Code Playgroud)
当我运行rake路由时,我没有看到user_omniauth_authorize_path的任何路由,我认为是因为该路由是由设计生成的.所以我认为我需要让我的路线指向一个设计控制器,但我似乎无法找到正确的路径.
我有工作代码,如下所示:
# Wow. Much nesting. So spacebar
if __name__ == '__main__:
for eachDir in list_of_unrelated_directories:
for eachFile in os.listdir(eachDir):
if eachFile.endswith('.json'):
# do stuff here
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种更优雅的方式.我想不要让我的代码嵌套三层这样深,如果我可以把它变成一个单行的像
for each file that ends with .json in all these directories:
# do stuff
Run Code Online (Sandbox Code Playgroud)
那将更加令人敬畏.我还编辑了这一点,指出目录不在同一个文件夹中.就像你可能在你的主文件夹和/ tmp文件夹中寻找.json文件一样.所以我不是试图通过单个文件夹递归移动.
我正在尝试使用node.js验证JSON对象。基本上,如果条件A存在,那么我要确保数组中可能不存在特定值。我使用dictionary.get在python中执行此操作,因为如果我查找不存在的内容,它将返回默认值。这就是python中的样子
if output.get('conditionA') and not 'conditionB' in output.get('deeply', {}).get('nested', {}).get('array', []):
print "There is an error somewhere you need to be fixing."
Run Code Online (Sandbox Code Playgroud)
我想为JavaScript找到类似的技术。我尝试在下划线中使用默认值来创建密钥(如果它们不存在的话),但我认为我做的不正确,或者我没有按预期的方式使用它。
var temp = _.defaults(output, {'deeply': {'nested': {'array': []}}});
if (temp.hasOwnProperty('conditionA') && temp.deeply.nested.array.indexOf('conditionB') == -1) {
console.log("There is an error somewhere you need to be fixing.");
}
Run Code Online (Sandbox Code Playgroud)
看起来,如果它遇到缺少嵌套对象之一的输出,则不会用默认值替换它,而是用TypeError: Cannot read property 'variety' of undefined“ variety”作为我正在查看的数组的名称来打击。
我想从Unix域套接字(SOCK_STREAM)读取消息,但我很难找到在Elixir中执行此操作的实例.我一直试图让它与Erlang的procket库一起工作,但我只有麻烦.
任何人都可以向我展示一个从Elixir中的unix域套接字读取的工作示例吗?
我有一个名为Discussion的简单模型,它有一个名为resolved的布尔列.
在我的表单中,我有以下代码
<%= form_for(@discussion) do |d| %>
...
<%= d.check_box :resolved %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我有以下内容:
def update
@discussion = Discussion.find(params[:id])
if @discussion.update_attributes(params[:discussion])
etc...
end
end
Run Code Online (Sandbox Code Playgroud)
当我提交表单时,我可以看到参数被发送到服务器...
Parameters: {"utf8"=>"?", "authenticity_token"=>"AsGsRHwiVva/+kTrBs0IjLeZwj1ZmXBuKZr9Pg/N6Xk=", "discussion"=>{"shortdesc"=>"Talk about something.", "content"=>"Try to update check box.", "resolved"=>"1"}, "commit"=>"Update Discussion", "id"=>"1"}
Run Code Online (Sandbox Code Playgroud)
但该查询不包含有关更新该字段的任何内容.
AREL (14.9ms) UPDATE "discussions" SET "content" = 'Try to update check box.', "updated_at" = '2011-07-18 17:53:50.783176' WHERE "discussions"."id" = 1
Run Code Online (Sandbox Code Playgroud)
对我缺少什么有任何想法?
简而言之,我有一个脚本,它读取.yaml文件以在运行时获取一些配置信息,例如要联系的URL,要使用的共享密钥,是否使用调试模式等.
使用该配置的模块有一个启动函数,该函数稍后调用一个循环,并且还调用一个logdebug函数来写入诊断信息,但只有在设置了调试模式的情况下.令我恼火的是,每当我打电话给我时,我必须将配置传递给每个功能.如果我可以调用start函数并设置一些可用于模块中所有其他函数的变量,那将会容易得多.可以这样做吗?我似乎无法找到有关如何做到这一点的任何事情.
有没有像我在这里做的那样设置运行时配置的首选方法?也许我过于复杂了?
编辑:更多细节,我将此作为一个可执行文件分发Escript.Build,我不想让最终用户编辑文件,然后重建文件.这就是为什么我希望最终用户(可能不是超级技术人员)能够编辑.yaml文件.
我正在开发一个非常简单的应用程序,使用twitter-bootstrap-rails进行样式设置.我的模型索引页面有一个显示数据的表,它看起来非常棒.问题在于,如果有人将一段非常长的完整文本(例如URL)输入到其中一个字段中,则该列的宽度会拉伸并挤压所有其他列.我想要一些方法来强制列的宽度,并告诉浏览器分解真正长的单词.
我到目前为止尝试做的是每个<th>我添加了一个类并尝试使用CSS来控制宽度.这是一个例子
<table>
<thead>
<tr>
<th class="column1"> etc
<th class="column2"> etc
</tr>
</thead>
<tbody>
<tr>
<td class="column1"> etc
<td class="column2" etc
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
然后我在我的样式表中使用它
th.column1 { width: 300px;
word-wrap:break-word;}
td.column1 { width: 300px;
word-wrap:break-word;}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这对我不起作用,我想知道是否需要复制我的代码.
html css column-width ruby-on-rails-3 twitter-bootstrap-rails
我试图将嵌套的表单放入我的一个视图中.我已经安装了nested_form Gem并执行了安装步骤.我做的最后一件事是编辑我的app/view/layouts/application.html.erb文件以包含此行
<%= javascript_include_tag "nested_form" %>
Run Code Online (Sandbox Code Playgroud)
但是当我查看渲染页面时,javascript无法正常工作.我检查了页面源代码,发现nested_form javascript的呈现代码如下所示:
<script src="/assets/nested_form.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
所以看起来似乎在错误的地方.该.js文件位于public/javascripts中,而不是资产中.我做错了什么或者我是否需要在javascript_include_tag中指定其他内容?
python ×4
pandas ×3
elixir ×2
matplotlib ×2
boolean ×1
column-width ×1
css ×1
dataframe ×1
devise ×1
html ×1
indentation ×1
javascript ×1
node.js ×1
omniauth ×1
routes ×1
vim ×1