我有一个非常简单的问题。我想从一个对象构造一个编码的url。我有一个名为“邀请”的对象。 “邀请”有以下字段,“消息”,“日期”,“名称”。我想从这个对象构造一个以下编码的字符串。因此,当我使用此网址时,它会预先填写google mail的撰写表单。
我已经声明了一个帮助器,如下所示(假设返回一个编码的字符串,可以在视图中使用)。 ..
module ApplicationHelper
def google_mail_encoded_url(invite)
uri = URI.parse('https://mail.google.com/u/0/?')
uri.query = URI.encode_www_form('view'=> "cm", 'fs' => "1", 'su' => "Party on " + invite.date, 'body' => "\nHi,\n" + invite.message + "\n" + invitations_url(invite))
puts uri.to_s
end
end
我试过跟踪rails控制台,
@invite = Invitations.where(:id => 10)
helper.google_mail_encoded_url(@invite) #just to see the output....
这失败了NameError:undefined局部变量或main:Object的方法`invitations_url'。这是调用和构造编码网址的正确方法吗?任何帮助表示赞赏。
答案 0 :(得分:0)
这是因为打开控制台时未加载路由。
为了能够使用它们,请在控制台中运行以下命令:
> include Rails.application.reload_routes!.first.url_helpers
=> Object
> root_path
=> "/"