小编sim*_*nwh的帖子

防止Paperclip在更新时删除/覆盖附件

我很难弄清楚如何防止Paperclip删除旧版本的附件(图像).

我有一个模型,网站,有一个附件,标志.我想保留旧徽标,因为我将跟踪模型的更改并希望查看徽标的历史记录.

我正在跟踪另一个模型中的更改,该模型具有对文件路径的引用.我的问题是,在使用新徽标更新网站时,Paperclip会先刷新旧徽标.

令我惊讶的是,在创建新附件之前,没有可以切换到防止Paperclip冲洗旧附件的选项.

有任何想法吗?

ruby-on-rails paperclip ruby-on-rails-3

19
推荐指数
1
解决办法
5398
查看次数

带有自定义slugs的.NET MVC-4路由

我正在用ASP.Net MVC 4重写一个网站项目,我发现很难设置正确的路线.url结构不是RESTful或遵循控制器/操作模式 - 页面具有以下slug结构.所有slugs都保存在数据库中.

/country
/country/carmake
/country/carmake/carmodel
/custom-landing-page-slug
/custom-landing-page-slug/subpage
Run Code Online (Sandbox Code Playgroud)

例:

/italy
/italy/ferrari
/italy/ferrari/360
/history-of-ferrari
/history-of-ferrari/enzo
Run Code Online (Sandbox Code Playgroud)

因为Country,Car Make并且Car Model是不同的模型/实体,我想有像CountriesController,CarMakesController和CarModelsController这样的东西,我可以处理不同的逻辑并从中呈现适当的视图.此外,我有自定义登录页面,可以有包含一个或多个斜杠的slugs.

我的第一次尝试是有一个全能的PagesController,它将在数据库中查找slug并根据页面类型调用适当的控制器(例如CarMakesController),然后执行一些逻辑并渲染视图.但是,我从未成功"调用"其他控制器并呈现适当的视图 - 而且感觉不对.

任何人都能指出我在正确的方向吗?谢谢!

编辑:为了澄清:我不想重定向-我要委派请求到不同的控制器,用于处理逻辑和呈现视图,取决于内容的类型(Country,CarMake等).

.net asp.net asp.net-mvc asp.net-mvc-4

11
推荐指数
1
解决办法
6260
查看次数

NSTokenField代表Core Data to-many关系

我在弄清楚如何在NSTokenField中表示多对多关系模型时遇到了问题.我有两个(相关)模型:

物品标签

一个项目可以有很多标签,一个标签可以有很多项目.所以这是一种反多种关系.

我想做的是在NSTokenField中表示这些标签.我想最终得到一个令牌字段自动建议匹配(找到一种方法来使用tokenfield:completionsForSubstring:indexOfToken:indexOfSelectedItem)并且能够添加新标记实体(如果它与现有标记不匹配).

好的,希望你还在我身边.我试图用绑定和数组控制器来做所有这些(因为这最有意义,对吧?)

我有一个数组控制器,"项目数组控制器",绑定到我的应用程序委托managedObjectContext.显示所有项目的tableview具有与此阵列控制器的绑定.

我的NSTokenField的值绑定了数组控制器选择键和模型键路径:标签.

使用此配置,NSTokenField将不显示标记.它只是给了我:

<NSTokenFieldCell: 0x10014dc60>: Unknown object type assigned (Relationship objects for {(
    <NSManagedObject: 0x10059bdc0> (entity: Tag; id: 0x10016d6e0 <x-coredata://9D77D47A-1171-4397-9777-706F599D7E3B/Tag/p102> ; data: <fault>)
)} on 0x100169660).  Ignoring...
Run Code Online (Sandbox Code Playgroud)

这对我来说很有意义,所以不用担心.我查看了一些NSTokenField委托方法,似乎我应该使用:

- (NSString *)tokenField:(NSTokenField *)tokenField displayStringForRepresentedObject:(id)representedObject
Run Code Online (Sandbox Code Playgroud)

问题是,这个方法没有被调用,我得到了和以前一样的错误.

好吧,所以我的下一步是尝试创建一个ValueTransformer.从带有标记实体的数组转换 - >带有字符串的数组(标记名称)都很好.另一种方式更具挑战性.

我试过的是在我的共享应用程序委托管理对象上下文中查找每个名称并返回匹配的标记.这显然给我一个不同的托管对象上下文的问题:

Illegal attempt to establish a relationship 'tags' between objects in different contexts (source = <NSManagedObject: 0x100156900> (entity: Item; id: 0x1003b22b0 <x-coredata://9D77D47A-1171-4397-9777-706F599D7E3B/Item/p106> ; data: {
author = "0x1003b1b30 <x-coredata://9D77D47A-1171-4397-9777-706F599D7E3B/Author/p103>";
createdAt = nil;
filePath = nil;
tags =     ( …
Run Code Online (Sandbox Code Playgroud)

cocoa core-data objective-c nstokenfield

7
推荐指数
1
解决办法
1126
查看次数

MVC和它们之间的通信.我错过了什么?

嘿所有,试图学习目标-c.它很顺利,直到我意识到我错过了一个链接.

当建立在MVC的精神中时,我理解它,因为你的模型和视图永远不应该互相交谈.

我有这个问题,我现在搞乱了.

  • 包含多边形类的模型.包含具有numberOfSides等属性的多边形对象.

  • 控制器,读取一些UI元素并修改模型.例如numberOfSides.

  • 一个视图,包含一个视图绘制多边形.

现在,这就是问题出现的地方.视图需要有关模型中对象的信息.我怎么做到的?我尝试了一些IBOutlet,但从来没有让它工作.

我最终为视图创建了一个可以包含numberOfSides的属性.然后我会使用一个控制器方法来调用view方法并设置numberOfSides.

我希望你们中的一些人能够为我澄清这一点并告诉我你应该如何继续这样做.

谢谢大家和晚安!:)

iphone model-view-controller cocoa-touch object objective-c

1
推荐指数
1
解决办法
542
查看次数