我有一个奇怪的数据模型情况,所以也许我的整个方法是错误的.这是我正在做的事情:
我有一个名为Bird的类和一个名为Color的简单类.从概念上讲,每只鸟有两种与颜色相关的关联,一种用于男性颜色,一种用于女性颜色.我处理这个的方法是使用一个名为BirdColoration的连接模型,它属于一个鸟和一个颜色,并有一个额外的布尔字段来判断颜色是针对男性还是女性.因此,每只鸟实际上都与BirdColoration有着很好的关系,而且它通过BirdColoration与Color-toyman相关.如果这听起来合理,那么继续阅读.否则,停下来告诉我为什么这是错的!
我需要能够将鸟桌作为json转储.以前,当每只鸟只有一个与颜色有关联时,我可以使用:include来包含每个鸟的颜色在json转储中.现在,我将BirdColorations包括在转储中,但我仍然需要自己使用颜色模型.我可以单独包括每只鸟的颜色和颜色,然后在解析时匹配它们,但我更愿意直接包括每种颜色的颜色.就像是
format.json { render :json => @birds.to_json(:include => [{:bird_colorations => :color}, :seasons, :habitats, :image_holders]) }
Run Code Online (Sandbox Code Playgroud)
但是,上述方法不起作用.我认为这应该是可能的.任何人都可以指出我如何处理这个问题的正确方向?
现在,我将分别包括每只鸟的颜色和颜色,并在解析时匹配它们.至少我知道这会奏效.
谢谢!
好的.我认为这个问题与我的rails应用程序有关,但它似乎与电子邮件附件的更深层次的工作有关.
我必须从我的rails应用程序发送一个csv文件到仓库,该仓库在我的商店中完成订单.仓库具有CSV格式,具有讽刺意味的是,CSV文件的标题行超长(1000+个字符).
当我收到测试电子邮件时,我在csv文件的标题行中得到了一个换行符,并且无法弄清楚是什么把它放在那里.然而,一些谷歌搜索终于显示了原因:附加文件的行字符限制为1000.为什么?我不知道.这看起来很荒谬,但我仍然不得不以某种方式发送这个csv文件.
我尝试手动将附件的MIME类型设置为text/csv,但这没有用.有人知道如何解决这个问题吗?
一些相关的Google搜索结果:http://www.google.com/search? client = safari&rls = en&q = csv + wrapped +990&ie = UTF-8&e = UTF-8
更新
我试过在base64中对附件进行编码,如下所示:
attachments['205.csv'] = {:data=> ActiveSupport::Base64.encode64(@string), :encoding => 'base64', :mime_type => 'text/csv'}
Run Code Online (Sandbox Code Playgroud)
这似乎没有什么不同.我通过Sparrow for Mac收到了me.com帐户的电子邮件.我将尝试使用gmail的web界面.
是否可以从视图控制器创建故事板segue到自身?我有一堆具有相关实体的实体.我希望能够使用显示实体的相同视图控制器显示相关实体.但我似乎无法创建一个将显示原始视图控制器的新实例的segue.
是不允许的?谢谢!
我有几个rails 3.1应用程序,我在所有这些都遇到了这个问题.
我有一堆js文件包含在我的application.js文件中.这是我的application.js:
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_self
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
问题是,当development.rb,我将config.assets.debug设置为true时,我的所有javascript文件都会被包含在标头中.实际上,它们并未明确地包含在内,而是单独包含一次,一次包含在已编译的application.js文件中.js包含标签如下所示:
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="/assets/animation_elements.js?body=1" type="text/javascript"></script>
<script src="/assets/categories.js?body=1" type="text/javascript"></script>
<script src="/assets/facebox.js?body=1" type="text/javascript"></script>
…
Run Code Online (Sandbox Code Playgroud)
那到底是什么?结果是各种JQuery onClick()行为正在执行两次和其他废话.这有什么问题?为了记录,这是我的整个development.rb文件:
Geobooks::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# …Run Code Online (Sandbox Code Playgroud) 我的情况很简单:我的核心数据存储中有一些记录.它们的一个属性是名为"localId"的字符串.有一点,我想找到具有特定localId值的记录.显而易见的方法是使用NSFetchRequest和NSPredicate.但是,当我设置它时,请求返回零记录.
但是,如果我使用不带谓词的获取请求,返回所有记录,只是遍历它们寻找目标localId值,我确实找到了我正在寻找的记录.换句话说,记录在那里,但是获取请求找不到它.
我使用获取请求和谓词的其他方法都按预期工作.我不知道为什么这个失败了.
我想做这个:
- (void)deleteResultWithLocalID:(NSString *)localId {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"WCAAssessmentResult" inManagedObjectContext:context]];
[request setPredicate:[NSPredicate predicateWithFormat:@"localId == %@", localId]];
NSError *error = nil;
NSArray *results = [context executeFetchRequest:request error:&error];
NSAssert(error == nil, ([NSString stringWithFormat:@"Error: %@", error]));
if ([results count]) [context deleteObject:[results objectAtIndex:0]];
else NSLog(@"could not find record with localID %@", localId);
[self saveContext];
}
Run Code Online (Sandbox Code Playgroud)
但我最终不得不这样做:
- (void)deleteResultWithLocalID:(NSString *)localId {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"WCAAssessmentResult" inManagedObjectContext:context]];
NSError *error = nil;
NSArray *results …Run Code Online (Sandbox Code Playgroud) 我正在使用NSManagedObject的子类.实际上,它继承自一个继承自NSManagedObject的类的类(这应该不是问题,对吗?).
问题
在对对象的属性进行更改后,对象会记住其生命周期的更改,但更改永远不会保存到数据库中.
我怎么知道这个?
我知道这是因为:
没有任何东西写入数据库!
上下文
我正在使用自动生成的委托方法来创建商店协调器和上下文.然后我按照文档中的建议将上下文传递给它们的init方法中的视图控制器.这家商店是SQLite.
我能够成功地将对象插入数据库并读取它们.我甚至可以对新插入的对象进行属性更改并成功保存.当对象被拉回数据库时,我似乎无法更新对象属性.
通过来自另一个对象的关系从商店中获取对象.在更改其属性后,我调用上下文的save方法.但是,在这样做之前,我调用对象的isUpdated方法和上下文的hasChanges方法,并且都返回false.它们不应该返回true,因为我刚刚更改了对象的属性但没有保存上下文吗?
更多
如果我在保存上下文之前调用对象的committedChanges方法,但是,传入我已更改的属性的名称,我会返回属性的正确值.我不确定这意味着什么.我原以为这意味着对象的新属性值已成功保存,但很明显它们没有保存.
我知道结果对象是在上下文中注册的.如果我打电话
[[result managedObjectContext] refreshObject:result mergeChanges:YES];
Run Code Online (Sandbox Code Playgroud)
对象恢复为原始属性值.这意味着上下文存在,并且它是从中获取记录的相同上下文.这意味着新属性值永远不会写入数据库.
一些代码
这是我正在探讨所有这些事情的代码.我的代码中有其他地方我正在进行属性更改,但更改永远不会保存.
- (IBAction)statusControlChanged:(UISegmentedControl *)control {
WCAAssessmentResult *result = [self currentResult];
/* printing the existing property values */
if (![result.complete boolValue]) NSLog(@"result is in progress!");
else if ([result.passed boolValue]) NSLog(@"result is passed!");
else NSLog(@"result is not passed!");
/* changing the property values */
switch (control.selectedSegmentIndex) {
case 0:
NSLog(@"setting incomplete");
result.complete = [NSNumber numberWithBool:NO];
break; …Run Code Online (Sandbox Code Playgroud) 我正在使用rails 3应用程序,我想使用可排序列表.我正在使用此处显示的方法.我的应用程序使用JQuery,我的应用程序布局中包含一个js文件,用于调用$(document).ready()设置一些可视化内容.这似乎工作正常.
但是,当我尝试$(document).ready()在我的视图模板中调用content_for :javascript以设置可排序列表时,该代码永远不会触发.我的yield :javascript布局文件中有必要的调用,如果我加载页面并查看源代码,一切看起来都很好.但是代码永远不会运行 - 即这个$(document).ready()永不触发的实例.
我刚刚发现,如果我替换$(document).ready(),$(window).load()那么我的js代码运行.
所以我的问题是:为什么会$(document).ready()失败并且$(window).load()有效?
这有效:
<% content_for :javascript do %>
<script>
$(window).load(function(){
alert('it works!');
});
</script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这不起作用
<% content_for :javascript do %>
<script>
$(document).ready(function(){
alert('it works!');
});
</script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这是布局
<!DOCTYPE html>
<html>
<head>
<title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
<!-- Reset Stylesheet -->
<%= stylesheet_link_tag "reset" …Run Code Online (Sandbox Code Playgroud) 我的谷歌地图实例中的信息窗口看起来很有趣:
构成信息窗口图形的角落和四肢的一些图像似乎缺失.知道为什么会这样吗?我正在试验,但尚未弄明白.
我正在使用gmap3,一个用于谷歌V3 API的JQuery包装器.这是我设置地图的代码(javascript/haml):
<script>
$(window).load(function() {
$('#map').gmap3();
var bounds = new google.maps.LatLngBounds ();
-@areas.each do |area|
bounds.extend(new google.maps.LatLng(#{area.latitude}, #{area.longitude}));
$('#map').gmap3(
{
action:'addMarker',
latLng:[#{area.latitude},#{area.longitude}],
events:{click:function(marker, event){
$(this).gmap3({action:'clear',list:['infoWindow']});
$(this).gmap3(
{
action:'addInfoWindow',
latLng:marker.getPosition(),
infowindow:
{content:"#{escape_javascript(link_to area.name, area)}<br>#{escape_javascript(image_tag area.image_holder.image.url(:thumb)) if area.image_holder.present?}"}
}
)}}
}
);
$('#map').gmap3('get').fitBounds(bounds);
$('.clickable_row').click(function() {
var id = $(this).attr('id');
window.location = '#{areas_path}' + '/' + id;
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Rails 3.0.3中创建一个嵌套的模型表单.这是我的模特:
class Bird < ActiveRecord::Base
has_one :taxon, :as => :organism
accepts_nested_attributes_for :taxon
end
class Taxon < ActiveRecord::Base
belongs_to :organism, :polymorphic => true
end
Run Code Online (Sandbox Code Playgroud)
这是控制器方法:
def new
@bird = Bird.new
@bird.build_taxon
end
Run Code Online (Sandbox Code Playgroud)
这是表格:
New Bird
<% form_for @bird do |f| %>
<p>
<%= f.label :wingspan %>
<%= f.text_field :wingspan %>
</p>
<p>
<%= f.label :body_length %>
<%= f.text_field :body_length %>
</p>
<% f.fields_for :taxon do |builder| %>
<%= builder.label :common_name %>
<%= builder.text_field :common_name %>
<%= builder.label :genus_name %>
<%= …Run Code Online (Sandbox Code Playgroud) ios ×3
core-data ×2
javascript ×2
attachment ×1
cocoa-touch ×1
csv ×1
email ×1
fields-for ×1
google-maps ×1
include ×1
iphone ×1
jquery ×1
jquery-gmap3 ×1
json ×1
mime-types ×1
nested-forms ×1
nspredicate ×1
sendgrid ×1
uistoryboard ×1