我有一个用于存储链接的表。我正在尝试使用 pismo gem 从 url 获取元数据,并将其保存到表中。
在我的链接控制器中,我有一个前置过滤器:
def pismo_grab_meta_data
doc = Pismo::Document.new("http://google.com/")
@link_title = doc.title
end
在 new 和 create 动作中调用它。在我看来,我在隐藏字段中传递了实例变量。
<%= f.hidden_field :name, :value => @link_title %>
这在将 url 硬编码为字符串时有效(如上面的 google 示例),但当我将 url 参数传递给它时会失败,如下所示:
doc = Pismo::Document.new(params[:url])
错误:未定义的方法“gsub!” 对于零:NilClass
Rails 很新,所以我想我在这里做一些愚蠢的事情。非常欢迎任何帮助!
<%= form_for(@link, :html => { "data-behavior" => "submit-form"}) do |f| %>
<% if @link.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@link.errors.count, "error") %>
prohibited this link from being saved:
</h2>
<ul>
<% @link.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.hidden_field :name, :value => @link_title %>
<div class="field urlsaver">
<%= f.label :url %><br />
<% if params[:link].present? %>
<%= f.text_field :url, :value => params[:link] %>
<% else %>
<%= f.text_field :url %>
<% end %>
</div>
<div class="actions">
<%= f.submit 'Save', :class => 'btn' %>
</div>
<% end %>