小编use*_*888的帖子

Rails和Devise的强参数

我正在使用rails 4.0分支的设计以及ruby 2.0.0p0和Rails 4.0.0.beta1.

这是一个问题,我在检查我是否以正确的方式进行,或者我还有其他事情要做.我确信很多人转向Rails 4.0都面临着同样的问题(谷歌搜索类似的东西后).

我已阅读以下链接:

现在使用devise我创建了一个User模型,我使用上面的gists创建了以下控制器(并确保将它包含在我的routes文件中).我的额外参数是first_name和last_name.

class Users::RegistrationsController < Devise::RegistrationsController
  def sign_up_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
  end
  def account_update_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
  end
  private :sign_up_params
  private :account_update_params
end
Run Code Online (Sandbox Code Playgroud)

还有什么我应该做的吗?这是从现在开始做事的最佳方式(因为放弃了attr_accessor).我的表单似乎工作正常(新的和更新).gists说使用"resource_params"但是在我的服务器日志中总是给出"Unpermitted parameters"错误.

ruby-on-rails devise strong-parameters

54
推荐指数
3
解决办法
3万
查看次数

在UICollectionView中滚动时,Admob Native Expess Ads阻止

我目前在UICollectionViewCell中配置了Admob Native Express Ad(GADNativeExpressAdView).

  • 我使用故事板来设置它,方法是添加一个空视图并为其分配GADNativeExpressAdView类.
  • 一切都很好,每10个单元格就会出现一个广告.

问题:用户第一次打开应用程序并开始向下滚动单元格列表,当它们到达Ad单元格时,滚动会阻止,直到本机广告"构建"为止.完成后,滚动继续.然后广告可能需要片刻(1-2秒)来加载广告请求.

  • 加载请求似乎不是罪魁祸首.
  • 我还以编程方式设置广告,当我第一次将广告视图添加为单元格的子视图时,它似乎主要挂起.

假设广告应该出现在单元格#20,#30等中,第二次(以及之后的每一个),滚动不会中断.它只发生在第一个.

关于如何解决这个问题的任何想法都将非常感激.这是GADNativeExpressAdView本身的问题吗?

谢谢.

AdCollectionViewCell.Swift

class AdCollectionViewCell: UICollectionViewCell {

    @IBOutlet var intercellBanner: GADNativeExpressAdView!

    override func awakeFromNib() {
        super.awakeFromNib()

        let request = GADRequest()
        request.testDevices = [kGADSimulatorID]
        self.intercellBanner.loadRequest(request)
    }

    override func prepareForReuse() {
        super.prepareForReuse()

        let request = GADRequest()
        request.testDevices = [kGADSimulatorID]
        self.intercellBanner.loadRequest(request)

    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c admob ios swift

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

分别通过TCP套接字发送和接收字符串

我有一个TCP服务器和客户端,已建立套接字.假设我有以下情况:

服务器:

char *fn = "John";
char *ln = "Doe";

char buffer[512];

strcpy(buffer, fn);
send(*socket, buffer, strlen(buffer), 0);
strcpy(buffer, ln);
send(*socket, buffer, strlen(buffer), 0);
Run Code Online (Sandbox Code Playgroud)

客户:

char *fn;
char *ln;

char buffer[512];

bytes = recv(*socket, buffer, sizeof(buffer), 0);
buffer[bytes] = '\0';
strcpy(fn, buffer);

bytes = recv(*socket, buffer, sizeof(buffer), 0);
buffer[bytes] = '\0';
strcpy(ln, buffer);

printf("%s", fn); 
printf("%s", ln);
Run Code Online (Sandbox Code Playgroud)

预期结果:我想分别收到每个字符串(因为我将它们保存在不同的变量中),而第一个recv()获取fn"John"和ln"Doe"连接"JohnDoe",并且程序被卡住了第二个recv()...因为我已经完成了发送.

我尝试了以下内容: - 将\ 0添加到fn和ln字符串,如下所示:

char *fn = "John\0";
char *ln = "Doe\0";
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在.

我可以施加某种条件,因此每个字符串是单独收到的吗?

编辑添加更多问题:

1)为什么它在某些情况下实际上是单独发送它们,而其他情况是联合发送它们?

2)我应该发送()和recv()吗?在我的代码的其他一些部分,它似乎是自我调节,只在正确的时间接收正确的字符串,而我不必检查.这样做有用吗?

3)关于发送一个标题我将要发送的字符串的长度,如何解析传入的字符串以知道在哪里拆分?任何例子都会很棒.

4)我肯定会检查我是否得到比缓冲区更大的东西,谢谢你的指点.

编辑2:

5)因为我总是把东西放在大小为512的缓冲区字符数组中.即使我发送1个字母的字符串,每个发送操作都不应该占用缓冲区的全部大小吗?这令人困惑.我有"约翰",但我把它的大小为512的数组和发送它,应该不是填满发送缓冲区,所以的recv()函数也拉动尺寸全阵列清空网络缓冲区512?

c sockets tcp

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

函数中的malloc()结构,结束程序前的free()

我正在学习C的基础知识,现在正在使用malloc().假设我有一个函数要求用户输入,用一个数据填充一个结构,并保存在一个数组中(所有结构都通过main函数引用传递).

我通过Valgrind运行程序,我得到"仍然可以访问"的字节(这应该是正确的?不被认为是泄漏),但是任何保存的数据我都会丢失块.

程序运行完成后,如何释放内存?此外,我在代码中有一些(2)问题只是为了澄清一些事情,如果有人可以向我解释,我会很感激.

这是一些类似于我想要做的代码:

我声明了以下结构:

struct Person {
  char name[MAX_INPUT];
  int age;
};
Run Code Online (Sandbox Code Playgroud)

我正在写一个像这样的函数:

int function2(struct Person *list, int *index) {
  struct Person *prsn = malloc(sizeof(struct Person)); 
  // !Why do we sometimes cast the malloc or not? 
  // I sometimes get errors when I do, sometimes when I don't, 
  // while the surrounding code is pretty much the same.
  assert(prsn != NULL);

  // User input code goes here ... 

  // Now to save the Person created
  strcpy(prsn->name, nameInput);
  prsn->age = …
Run Code Online (Sandbox Code Playgroud)

c malloc valgrind pointers

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