【问题标题】:How get variable value using HAML?如何使用 HAML 获取变量值?
【发布时间】:2013-04-19 12:15:54
【问题描述】:

我有一点检入模型:

class Customers < ActiveRecord::Base
  def check_user_name(name, email)
    name = Customers.where(:name => name)
    email = Customers.where(:email => email)
    if name && email    
      @answer = 'Question was send to us. Thank you.'
    else 
      @answer = 'ERROR, no such name or email.'    
    end
  end 
end

并查看(haml 文件):

=@answer

但页面上没有文字......空......请解释一下为什么?)

【问题讨论】:

  • 你对控制器和模型有区别吗?

标签: ruby-on-rails haml


【解决方案1】:

试试这个:

class Customers < ActiveRecord::Base #why this model plural?
  def check_user_name(name, email)
    result = {}
    result[:name] = where(:name => name)
    result[:email] = where(:email => email)
  end
end

class CustomersController < ApplicationController
  result = Customers.check_user_name(name, email)
  if result[:name].present? && result[:email].present?
      @answer = 'Question was send to us. Thank you.'
    else 
      @answer = 'ERROR, no such name or email.'    
    end
end

 =@answer

控制器中的所有实例变量都传递到视图中

【讨论】:

    【解决方案2】:

    您的模型中的实例变量无法从您的视图中访问。

    控制器中的实例变量是您将数据传递到视图的方式。

    尝试从模型方法中返回字符串,然后将其分配给控制器中的变量@answer。例如。 @answer = cust.check_user_name(params[:name], params[:email])

    【讨论】:

    • 这是我的控制器:class CustomersController &lt; ApplicationController def ask end def check_user cust = Customers.new cust.check_user_name(params[:name], params[:email]) end end
    • 非常感谢。控制器中的修复:@answer = cust.check_user_name(params[:name], params[:email]) 模型中的修复:return '问题已发送给我们。谢谢。'或返回 somthig else 文本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多