好的,目前我有一张表格
<div class="field">
<%= f.label :title %><br/>
<%= f.text_field :title %><br/>
<%= f.label :itunesurl %><br />
<%= f.text_field :itunesurl %><br />
<%= f.hidden_field :user_id, :value => current_user.id %>
</div>
<div class="actions">
<%= f.submit %>
</div>
Run Code Online (Sandbox Code Playgroud)
它将current_user.id传递给我的"app"模型的create方法,该方法在保存之前将其创建为:
@app = App.new(params[:app])
Run Code Online (Sandbox Code Playgroud)
但是我有(伪代码)的关联
user has_many apps
apps belongs_to user
Run Code Online (Sandbox Code Playgroud)
问题:在create方法中执行类似的操作是否更安全(因此表单不会被修改)?
@user = current_user
@app = @user.apps.create(params[:app])
Run Code Online (Sandbox Code Playgroud)
如果是这样......我究竟将如何实际实现上面的代码(它在语法上不正确..只是伪)?
谢谢!
我已经为iOS发布了一个CocoaPod,并希望在OS X上也可以使用它.我修复了我的PodSpec,以便它可以用于iOS和Mac OS X:
Pod::Spec.new do |s|
s.name = "EveryoneAPI"
s.version = "0.9.5"
s.summary = "An objective-c wrapper for EveryoneAPI.com's API"
s.description = <<-DESC
To retrieve all information for EveryoneAPI use the following:
EveryoneAPI *everyoneAPI = [[EveryoneAPI alloc] initWithAccountSID:@"ACb8444c3013dc40518e46b48c91f82ba0" withAuthToken:@"AUe90abecac85645ca8a314d41e9b55079"];
[everyoneAPI getInformation:EveryoneAPIReturnAllInfo forPhoneNumber:@"5551234567" withSuccessHandler:^(EveryoneAPIResponseObject *responseObject){
} withErrorHandler:^(NSError *error, NSNumber *statusCode, NSString *readableError){
}];
DESC
s.homepage = "https://github.com/msencenb/EveryoneAPI"
s.license = 'MIT'
s.author = { "Matt Sencenbaugh" => "my_email@gmail.com" }
s.source = { :git => "https://github.com/msencenb/EveryoneAPI.git", :tag => s.version.to_s }
s.ios.deployment_target = …Run Code Online (Sandbox Code Playgroud) 所以我有一个模块"MiddleMan"我可以在rails控制台中调用它,但在控制器中我得到一个NoMethodError
在控制器中我有:
class SignUpController < ApplicationController
include MiddleMan
def page_one
@package = MiddleMan::read_catalog("a", "b", "c")
end
end
Run Code Online (Sandbox Code Playgroud)
在middleman.rb模块中,我有:
module MiddleMan
def read_catalog(package, payment, coupon)
Package.new(:price => "4.99")
end
end
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
一旦第一次STAssert失败,有没有办法停止执行iOS单元测试?
例如,如果我有多个STAsserts:
STAssertTrue([myobject succeeded], @"failed");
STAssertNotNil(foo,@"bar");
Run Code Online (Sandbox Code Playgroud)
如果Xcode在第一个失败后停止执行测试,我会很高兴.有什么办法吗?
所以我将一系列图像发布到我的服务器上.我想使用GCD异步发布数组,但我也想让这个发生同步的方法,以便我可以传回一个响应对象.但是,dispatch_group_wait方法似乎立即返回(而不是等待我的块完成).这是一个问题因为我在块中使用了一个块吗?
NSArray *keys = [images allKeys];
__block NSMutableDictionary *responses = [NSMutableDictionary dictionaryWithCapacity:[images count]];
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
for (int i = 0; i < [keys count]; i++) {
__block NSString *key = [keys objectAtIndex:i];
dispatch_group_async(group, queue, ^{
[self postImage:[images objectForKey:key] completionHandler:^(ServerResponse *response){
@synchronized(responses){
if ([response succeeded]) {
NSString *value = [[response data] objectForKey:@"image_token"];
[responses setObject:value forKey:key];
NSLog(@"inside success %@",responses);
} else {
NSString *error = response.displayableError;
if (!error) {
error = @"Sorry something went wrong, …Run Code Online (Sandbox Code Playgroud) iphone concurrency multithreading grand-central-dispatch ios
我希望在接下来的一周左右更新我的一个旧应用程序,并希望在应用程序购买中实现托管,而不是我的旧服务器策略.
根据我正在阅读的文档,它说"在应用内购买详细信息页面的Apple主机内容部分中,单击是"; 但是,当我创建任何新的应用内购买时,我无法看到该框.是否有一些理由认为该选项不适合我?
所以我有一个基本的布局文件:
<!DOCTYPE html>
<html dir="ltr" lang="en-US">
<head>
<%= stylesheet_link_tag "logged_out" %>
<%= javascript_include_tag "application" %>
<%= stylesheet_link_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css" %>
</head>
<body>
<!-- header stuff here -->
<%= yield %>
<!-- footer stuff here -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和任何正常的HTML一样好.但是,如果我将这样的iframe添加到视图中:
<iframe id="form" height="480" width="320" src="/mobile_preview/preview"/>
Run Code Online (Sandbox Code Playgroud)
当我渲染页面时,所有内容都会呈现,直到iframe,但是yield之后的页脚内容不会呈现.有没有人遇到过这个?
编辑:正如其中一个答案所指出的(谢谢!),我在最初的问题中的收益率陈述是错误的.我的代码中的yield语句是正确的,但是当转移到stackoverflow时它是一个错字.
注意:如果您尝试复制iframe正在使用jquery mobile.
与工作express.js的第一次,和我被困在加入我的第一条路线.
我的路线定义app.js如下:
app.get('/user/:id/photos', function(req,res){
res.send('user' + req.params.id);
});
Run Code Online (Sandbox Code Playgroud)
然而,卷曲http://localhost:3000/user/1/photos 只会导致"无法获取"错误.
Express中包含的索引文件似乎工作得很好.
这是我的快递app.js文件:
var express = require('express'),
routes = require('./routes');
var app = module.exports = express.createServer();
// Configuration
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function() {
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.configure('production', function() {
app.use(express.errorHandler());
});
// Routes
app.get('/', routes.index);
app.get('/test', routes.test);
app.get('/user/:id/photos', function(req, res) {
res.send('user' + req.params.id);
});
app.listen(3000); …Run Code Online (Sandbox Code Playgroud) 我已经看到在应用程序控制器方法中经常使用或等于|| =来设置变量(如果它不存在).最近的Railscasts 270.但我有一个问题..例如这个帮助方法
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果@current_user尚不存在,则设置它.这意味着rails不必去数据库,性能获胜等.
但是我对@current_user的范围感到困惑.假设我们网站有两个用户.第一个(让我们称之为"bob")来到网站并将@current_user设置为他的用户对象.现在当第二个("john")进来并且rails要求@current_user时...为什么用户对象仍然不是bob的?毕竟@burrent_user已经设置了一次当bob命中网站所以变量存在?
困惑.
所以我有一个 User 模型和一个 Dinner 模型。它们由 LotteryEntry 模型关联。(也就是人们必须进入彩票才能被选中去吃晚饭)
假设我有一组这样的晚餐查询:
first_page_dinners = Dinner.objects.all().order_by('-created_at')[:5]
Run Code Online (Sandbox Code Playgroud)
以及当前登录用户的“彩票”查询集
entries = LotteryEntry.objects.filter(user=request.user)
Run Code Online (Sandbox Code Playgroud)
现在在模板中,我正在遍历 Dinner 对象,但还想检查该人是否已经为该晚餐输入了彩票......所以是这样的:
{% for d in dinners %}
{% if entries.contains(d) %}
//custom html here if user has already entered lottery
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
然而,'.contains' 不是一个真实的东西。django/python 是否提供了这样一个不错的小方法?