小编Dmi*_*tri的帖子

ActionMailer将局部变量传递给erb模板

我知道我可以定义实例变量,例如:

def user_register(username, email)
  @username = username
  @email = email

  mail(:to => email, :subject => "Welcome!", :template_name => "reg_#{I18n.locale}")
end
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法使用局部变量,就像传递:locals到partials?

ruby ruby-on-rails erb actionmailer local-variables

15
推荐指数
2
解决办法
9633
查看次数

Rails嵌套with_option:如果用于验证

validate :updatable?  # First validation there is
with_options :if => Proc.new { |object| object.errors.empty? } do |updatable|
    updatable.with_options :if => "self.current_step == basic" do |step|
        validates .... bla-bla bla
Run Code Online (Sandbox Code Playgroud)

因此,在进行任何验证之前,将调用可更新子例程,并errors[:base]使用适当的错误填充数组,这意味着该对象不可更新.而且我想它跳过验证的其余部分如果在这个子程序中发现任何错误,但上述例子工作-它执行所有的验证.

但是,如果我改变:if => "self.current_step == basic",:if => "self.errors.empty? && self.current_step == basic"就像魅力一样.

我做错了什么?示例显示,嵌套with_option应该可行.

有人能帮我吗 ?提前致谢.

ruby validation nested ruby-on-rails

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

Wordpress nginx重定向循环

所以,昨天我有一个问题如何在"/ root"目录中安装wordpress.我在那个方面并不是很成功,我放弃了那个.

所以,现在wordpress位于" / var/www/wordpress "下(所以它位于单独的文件夹下)文件夹(我使用Ubuntu 12.04 LTS,如果重要的话).

我的问题是,在我配置完所有内容后(一切都像魅力一样)我被重定向到管理面板页面.一切都很好,直到我试图访问博客的那一刻.

我的博客的URL地址是:"blog.mysite.com".这就是我使用NGINX的原因,因为我在一台服务器上有两个不同的应用程序(和环境),我需要区分它们.

所以,事实是:blog.mysite.com/wp-admin(/wp-login.php)工作正常,但是当我访问首页时:blog.mysite.com,它一直告诉我有一个无限重定向循环(301重定向根据nginx访问日志文件).

在管理面板中,我将"WordPress地址(URL)"和"站点地址(URL)"设置为:" http://blog.mysite.com ".将其中任何一个修改为其他内容,例如:" http://blog.mysite.com/wordpress "根本没有帮助!

".htaccess"文件为空,但我使用默认永久链接,所以不应该是一个问题(但是,我不确定).

nginx和apache2根指令都指向"/ var/www/wordpress".如果重要的话,静态文件(css,js)正在工作.

我该如何解决这个问题?任何帮助深表感谢!

先感谢您!

php wordpress redirect nginx

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

在获取之前输入C. Scanf.问题

我是C的新手,我在向程序输入数据时遇到了问题.

我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
   int a;
   char b[20];

   printf("Input your ID: ");
   scanf("%d", &a);

   printf("Input your name: ");
   gets(b);   

   printf("---------");

   printf("Name: %s", b);   

   system("pause");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

它允许输入ID,但它只是跳过其余的输入.如果我改变这样的顺序:

printf("Input your name: ");
   gets(b);   

   printf("Input your ID: ");
   scanf("%d", &a);
Run Code Online (Sandbox Code Playgroud)

它会工作.虽然,我不能改变秩序,我需要它原样.有人能帮我吗 ?也许我需要使用其他一些功能.谢谢!

c gets input scanf

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

在C中双重拆分

好.例如,我在我的txt文件中有这一行:

1|1,12;7,19;6,4;8,19;2,2
如你所见,它有2个部分,由...分隔|.我没有问题获得两个部分,并1,12;7,19;6,4;8,19;2,2使用;分离器分离第二部分.但我确实有进一步分离的问题,,以获得每组的第一和第二个数字.

这是我目前的代码:

  result = strtok(result, ";");

  while(result != NULL ) {
      printf("%s\n", result);
      result = strtok(NULL, ";");
  }
Run Code Online (Sandbox Code Playgroud)

它输出我:

1,12
7,19
6,4
8,19
2,2

太好了.但是,当我尝试"strtok"(我正在使用此方法进行拆分)时,如下所示:

 result = strtok(result, ";");

 while(result != NULL ) {
     //printf("%s\n", result);
     help    = strtok(result, ",");    
     while(help != NULL) {
         printf("<%s>", help);
         help = strtok(NULL, ",");
     }

     result  = strtok(NULL, ";");
 }
Run Code Online (Sandbox Code Playgroud)

我只得到"<1>,<12>",就像这组数字中只有一组一样.我不明白其他数字在哪里.相反,输出应该是:<1>,<12>,<7>,<19>,<6>,<4>,<8>,<19>,<2>,<2>.有人可以给出一个解决方案,如何获得每组的EACH号码这组数字.也许有其他方法或我做错了:)

谢谢!

c string split strtok

7
推荐指数
2
解决办法
2570
查看次数

Rails从一个邮件程序功能发送2个不同的电子邮件

我有必要这样做,因为这对我来说似乎合乎逻辑:

def notification(vehicle) 
   @vehicle = vehicle

   mail(:to => @vehicle.owner.email_address, :template_name => "n_o")
   mail(:to => @vehicle.booker.email_address, :template_name => "n_b")
Run Code Online (Sandbox Code Playgroud)

结束

问题是:我只收到最后一封电子邮件.因此,在上面的示例中,只有预订者才会收到电子邮件,并且没有任何内容发送给所有者.

问题是什么 ?怎么解决?我应该创建两个单独的邮件功能,例如notification_owner(vehicle)和notification_booker(vehicle),还是有一个更简单的解决方案?

谢谢!

email ruby-on-rails actionmailer ruby-on-rails-3

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

Scala - 覆盖特征中的类方法

我是Scala的新手(来自Ruby世界).

而且我对Scala中的"traits"概念感到好奇(如果我理解正确的话,它应该〜类似于ruby中的模块).

这是一个用例.

假设我有一个User像这样定义的类:

class User {
    def password() : String = "generating a password (default)"
}
Run Code Online (Sandbox Code Playgroud)

假设我有一个特性SecurePasswords,我想用它"覆盖" User类中定义的密码方法.

trait SecurePasswords {
    def password() : String = "generating a secure password (non-default)"
}
Run Code Online (Sandbox Code Playgroud)

并且,假设,我希望它适用于User类的实例,而不是适用于整个类本身.

val a = new User
val b = new User with SecurePasswords

a.password() # generating a password (default)
b.password() # generating a secure password (non-default)
Run Code Online (Sandbox Code Playgroud)

现在这是我期望的理想输出,但是,我得到了不同的错误,如" anonymous class inherits conflicting members ... (Note: this can be resolved declaring etc …

java inheritance overriding scala traits

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

Ruby on Rails I18n插值

大家!

我对我的:username字段进行了一次小验证,该字段应该是4到30个字符.我写了一个验证::length => { :within => 4..30, :message => I18n.t('activerecord.errors.range')- 我想为所有类型的错误显示单个错误消息(不喜欢,too_long或too_short),但这里的问题是 - 我可以将最小值和最大值传递给翻译,具有类似的内容:用户名应在4到30个字符之间.目前我有:range: "should be between %{count} and %{count} characters",显然不起作用(只是为了检查).

是否可以从范围中获取这些值?

谢谢大家的建议!

ruby validation ruby-on-rails range internationalization

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

Rails预编译常量未初始化

我想预加载配置(来自".yml"文件).在我的一个初始化文件(config/initializers/facebook.rb)中,我有以下代码行:

FACEBOOK_CONFIG = YAML.load_file("#{Rails.root}/config/facebook.yml")[Rails.env]
Run Code Online (Sandbox Code Playgroud)

因此,它就像"开发"模式中的魅力一样.一旦我切换到生产模式,它一直告诉我,FACEBOOK_CONFIG是我的" facebook.js.coffee.erb"文件的未初始化常量,位于assets/javascript(如果重要),如果我想要"rake assets:precompile".我试过做随机的东西,比如:RAILS_ENV=production bundle exec rake assets:precompile或者

rake assets:precompile:all

,但没有运气

我已经尝试initialize_on_precompile = true为我的生产环境分配" "变量(尽管默认情况下应该是这样),以防万一.

为什么它在生产模式下不起作用(但是,我想强调一点,它在开发环境中起作用(!)).

有人可以帮助那个吗?

assets initialization ruby-on-rails ruby-on-rails-3 asset-pipeline

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

YAML引用另一个文件中的另一个变量

假设我有2个YAML文件:

1)application.yml

en:
  variable: "Hello World"
Run Code Online (Sandbox Code Playgroud)

2)user.yml

en:
  variable: <Here I want to get value from application.yml -> "Hello World" >
Run Code Online (Sandbox Code Playgroud)

起初我虽然可以使用引用:

1)application.yml

en:
  variable: &variable "Hello World"
Run Code Online (Sandbox Code Playgroud)

2)user.yml

en:
  variable: *variable
Run Code Online (Sandbox Code Playgroud)

但事实证明,只有在一个文件中声明的项目才有可能.有什么办法可以从application.yml中定义的变量中获取值吗?

string yaml reference transclusion

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