免责声明:我是轨道n00b。我正在玩一个简单的辅助函数,它没有做我想做的事。
这是辅助函数
def webforms_helper
if :address == 10
print "Address is 10"
else
print "Address is not 10"
end
end
在我的“展示”视图中,我已合并辅助函数<%= webforms_helper %>
我也没有成功使用put(并检查控制台)而不是print
有什么想法吗?我为新手问题道歉;)
答案 0 :(得分:2)
首先,一个合适的助手看起来像这样:
module ApplicationHelper
def myformchecker(ahash)
if ahash[:address] == '10'
return 'Address is 10'
end
end
end
然后在你的控制器中:
class ApplicationController < ActionController::Base
helper: application
...
end
然后在你看来:
<%= myformchecker(params) %>
因此,如果视图是为响应表单提交而呈现的,则表单具有以下内容:
<%= text_field_tag :address %>
当用户填写表单并将字符串“10”作为地址时,您的视图中将生成“地址为10”。
答案 1 :(得分:1)
嗯,你的运动不是很清楚,但是这样......
def webforms_helper
if :address == 10
print "Address is 10"
else
print "Address is not 10"
end
end
由于以下原因,永远不会打印任何内容到Rails视图,你正在使用put和print方法,这两个将输出到控制台。你必须自己返回字符串,这样做......
def webforms_helper
if :address == 10
"Address is 10"
else
"Address is not 10"
end
end
我知道你正在做一个简单的演示,但是将参数传递给Helper是个好主意。这就是你99%的时间都会做的事情..
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
答案 2 :(得分:0)
您应该将信息传递给帮助者,以便他们为您做出决定。
# 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,我还衷心建议您找一本好书(Agile Web Development with Rails)或教程(Ruby on Rails Tutorial)。