像按钮模拟(Ruby on Rails中的可嵌入小部件)

时间:2013-02-28 14:19:33

标签: ruby-on-rails widget

我正在创建可嵌入的小部件,类似于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 %>

问题是我的表格需要我的完整网址。如何添加,是否安全?

1 个答案:

答案 0 :(得分:1)

使用url的{​​{1}}选项:

form_for

它的工作方式与url_for完全相同,并且应将您提供的选项与form_for [@widget, @like], remote: true, url: { host: "http://somewebsite.com" } 提供的默认值合并。

<强>更新

现在我想起来了,甚至更简单:

form_for

这将为您提供当前主机的完整网址。这个解决方案更容易维护。