我有一个用于存储链接的表。我正在尝试使用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 %>
当硬编码将字符串作为字符串(如上面的google示例)时,这会有效,但是当我将url params传递给它时失败,如下所示:
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 %>
答案 0 :(得分:0)
您要查找的值应为params [:link] [:url]。 将行更改为:
doc = Pismo::Document.new(params[:link][:url])