小编Mse*_*enb的帖子

Rails 3 - 在隐藏表单字段中使用user.id与使用关联

好的,目前我有一张表格

<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)

如果是这样......我究竟将如何实际实现上面的代码(它在语法上不正确..只是伪)?

谢谢!

forms ruby-on-rails associations has-many ruby-on-rails-3

6
推荐指数
2
解决办法
1万
查看次数

为iOS和OSX开发CocoaPod

我已经为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)

macos ios cocoapods podspec

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

来自Controller的调用模块功能(NoMethodError)

所以我有一个模块"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)

有什么想法吗?

controller module ruby-on-rails ruby-on-rails-3

5
推荐指数
1
解决办法
2万
查看次数

第一次STAssert失败后,SenTesting停止测试

一旦第一次STAssert失败,有没有办法停止执行iOS单元测试?

例如,如果我有多个STAsserts:

STAssertTrue([myobject succeeded], @"failed");
STAssertNotNil(foo,@"bar");
Run Code Online (Sandbox Code Playgroud)

如果Xcode在第一个失败后停止执行测试,我会很高兴.有什么办法吗?

iphone unit-testing ios sentestingkit

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

dispatch_group_wait与GCD

所以我将一系列图像发布到我的服务器上.我想使用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

5
推荐指数
2
解决办法
8469
查看次数

IAP创建 - 没有"托管内容"

我希望在接下来的一周左右更新我的一个旧应用程序,并希望在应用程序购买中实现托管,而不是我的旧服务器策略.

根据我正在阅读的文档,它说"在应用内购买详细信息页面的Apple主机内容部分中,单击是"; 但是,当我创建任何新的应用内购买时,我无法看到该框.是否有一些理由认为该选项不适合我?

iphone in-app-purchase ios iap-hosted-content

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

Rails 3.1在视图中使用iframe使布局停止渲染

所以我有一个基本的布局文件:

<!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.

iframe layout ruby-on-rails render ruby-on-rails-3.1

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

使用express.js进行路由 - 无法获取GET错误

与工作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)

routing http node.js express

4
推荐指数
1
解决办法
2万
查看次数

关于在应用程序控制器中使用或等于(|| =)的问题

我已经看到在应用程序控制器方法中经常使用或等于|| =来设置变量(如果它不存在).最近的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命中网站所以变量存在?

困惑.

ruby-on-rails helpermethods ruby-on-rails-3

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

检查对象是否存在于 QuerySet 中

所以我有一个 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 是否提供了这样一个不错的小方法?

python django for-loop django-queryset

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