首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails助手函数似乎不起作用

Rails助手函数似乎不起作用
EN

Stack Overflow用户
提问于 2012-06-15 14:05:36
回答 3查看 3.4K关注 0票数 1

免责声明:我是rails n00b。我在玩一个简单的助手函数,它没有完成我希望它做的事情。

  • 我有一个叫做“webform”的模型,里面有几个文本字段(姓名、地址等)。
  • 我试图使用帮助函数来测试if语句(即'is‘is address == '10')
  • 如果:address == 10打印地址是10“否则打印”地址不是10“结束
  • 在我的“显示”视图中,我合并了助手函数<%= webforms_helper %>
  • 我加载了这个web应用程序,没有错误--尽管,它没有打印“地址是10”或“地址不是10”
  • 我也没有成功地使用puts (和检查控制台)代替打印。
  • 有什么想法吗?(我为这个新手的问题道歉;)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-15 14:31:25

首先,适当的帮手应该如下所示:

代码语言:javascript
复制
module ApplicationHelper
  def myformchecker(ahash)
     if ahash[:address] == '10'
        return 'Address is 10'
     end
  end
end

然后在你的控制器里:

代码语言:javascript
复制
class ApplicationController < ActionController::Base
  helper: application
  ...
end

那么在你看来:

代码语言:javascript
复制
<%= myformchecker(params) %>

因此,如果视图是响应于表单提交而呈现的,并且该表单具有以下内容:

代码语言:javascript
复制
<%= text_field_tag :address %>

当用户填写表单并将字符串'10‘作为地址时,’address is 10‘将在您的视图中生成。

票数 2
EN

Stack Overflow用户

发布于 2012-06-15 14:21:01

嗯,你的锻炼不太清楚,但是像这样的.

代码语言:javascript
复制
def webforms_helper 
  if :address == 10 
    print "Address is 10" 
  else 
    print "Address is not 10" 
  end
end

不会将任何东西打印到Rails视图中,原因是,您使用的是puts和print方法,这两个方法将输出到控制台。你必须把绳子还给我,这样做.

代码语言:javascript
复制
def webforms_helper 
  if :address == 10 
    "Address is 10" 
  else 
    "Address is not 10" 
  end
end

我知道您正在做一个简单的演示,但是将参数传递给助手是个好主意。这就是你99%的时候要做的..。

代码语言:javascript
复制
def webforms_helper(address)
  if address == 10 
    #return something meaningful as string to the view
  else 
    #return something meaningful as string to the view too.
  end
end
票数 1
EN

Stack Overflow用户

发布于 2012-06-15 14:17:04

您应该将信息传递给帮助者,这样它就可以为您做出决定。

代码语言:javascript
复制
# app/views/webforms/show.html.erb
<%= webforms_helper(address) %>

# app/helpers/webform_helper.rb
module WebformHelper
  def webforms_helper(address)
    if address == 10
      "Address is 10"
    else
      "Address is not 10"
    end
  end
end

如果您刚开始使用Rails,我还会衷心推荐您找到一本好书(基于Rails的敏捷Web开发)或教程(Rails教程)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11052203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档