Ruby on rails 带有用户身份验证令牌的Rails webcal subcription url;

Ruby on rails 带有用户身份验证令牌的Rails webcal subcription url;,ruby-on-rails,icalendar,Ruby On Rails,Icalendar,我正在尝试为我的应用程序用户创建一个链接,用于订阅他们的帐户日历。我有一个在rails日历中生成的链接\u publisher\u list\u url(:format=>:ics,:only\u path=>false,:protocol=>“webcal”) 这会生成一个类似webcal://mywebsite.com/calendar.ics 但是,这仅在用户登录时有效。我需要的链接工作时,日历自动更新,即使用户没有登录。因此,我需要生成一个如下所示的链接: webcal://123@my

我正在尝试为我的应用程序用户创建一个链接,用于订阅他们的帐户日历。我有一个在rails日历中生成的链接\u publisher\u list\u url(:format=>:ics,:only\u path=>false,:protocol=>“webcal”) 这会生成一个类似webcal://mywebsite.com/calendar.ics 但是,这仅在用户登录时有效。我需要的链接工作时,日历自动更新,即使用户没有登录。因此,我需要生成一个如下所示的链接: webcal://123@mywebsite.com/calendar.ics,其中“123”是用户的身份验证令牌。
如何生成此url?

将其作为属性放到url上有什么不对

calendar_publisher_lists_url(:format => :ics, :only_path => false,:protocol => "webcal", :authentication_token => current_user.authentication_token)

webcal://mywebsite.com/calendar.ics?authentication_token=123

我的意思是,除了安全问题…

如果安全不是问题,您可以更改路由以添加id

match '/calendar/:id/calendar_feed', to: 'calendar#calendar_feed', :as => 'calendar_feed_path'
然后在控制器中放入

def calendar_feed
  @user=User.find(params[:id])
  respond_to do |format|
    format.ics
  end
end
然后添加一个视图模板,根据您的逻辑进行调整以满足您的需要(此代码来自我的一个项目):

BEGIN:VCALENDAR
方法:发布
版本:2.0
PRODID:-//UserCalendar//EN
X-WR-CALNAME:网站名称
格戈里安
#改变逻辑以满足您的需要
开始:VEVENT
DTSTAMP:
UID:
总结:|
DTSTART:
数据终端:
完:维文特
完:VCALENDAR
然后,feed链接将是

<%= link_to("Subscribe to Calendar", "webcal://www.nameofwebsite.com/calendar_feed/#{current_user.user_id}/calendar_feed.ics" ) %>

这太棒了。。谢谢
<%= link_to("Subscribe to Calendar", "webcal://www.nameofwebsite.com/calendar_feed/#{current_user.user_id}/calendar_feed.ics" ) %>