リンクを保存するためのテーブルがあります。URLからメタデータを取得してテーブルに保存するためにpismogemを使用しようとしています。
私のリンクコントローラーには、beforeフィルターがあります:
def pismo_grab_meta_data
doc = Pismo::Document.new("http://google.com/")
@link_title = doc.title
end
これは、新しいアクションと作成アクションで呼び出されます。私の見解では、インスタンス変数を非表示フィールドに渡します。
<%= f.hidden_field :name, :value => @link_title %>
これは、URLを文字列としてハードコーディングすると機能しますが(上記のGoogleの例のように)、次のようにurlパラメータを渡すと失敗します。
doc = Pismo::Document.new(params[:url])
エラー:未定義のメソッド `gsub! ' nilの場合:NilClass
レールはかなり新しいので、ここで愚かなことをしていると思います。どんな助けでも大歓迎です!
<%= 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 %>