我正在创建可嵌入的小部件,类似于facebook的类似按钮。
我有两个模型:widget和widget_like。
我的数据库
在小部件表中,有些网站安装了我的“按钮”。
在widget_like表中有网站的喜欢。
的 WidgetsController 的
def show
@widget = Widget.find(params[:id])
@like = WidgetLike.new
end
的 WidgetLikesController 的
def create
@widget = Widget.find(params[:widget_id])
@like = @widget.widget_likes.build(params[:widget_like])
if @like.save
respond_to do |format|
format.html
format.js
end
end
end
的窗口小部件/ show.js.erb 的
document.write("<%= escape_javascript(render(:partial => "embed").html_safe) %>");
的窗口小部件/ embed.html.erb 的
<%= form_for ([@widget, @like]), :remote => true do |f| %>
<%= f.submit "widget" %>
<% end %>
问题是我的表格需要我的完整网址。如何添加,是否安全?
答案 0 :(得分:1)
使用url
的{{1}}选项:
form_for
它的工作方式与url_for完全相同,并且应将您提供的选项与form_for [@widget, @like], remote: true, url: { host: "http://somewebsite.com" }
提供的默认值合并。
<强>更新强>
现在我想起来了,甚至更简单:
form_for
这将为您提供当前主机的完整网址。这个解决方案更容易维护。