2017-01-08 3 views
0

ユーザーは、フォームにタイトルとURLリンクを送信します。 次に、URLを含むリンクとしてそのタイトルをレンダリングします。 だから、タイトル下のフォームで、私はまだレールのいくつかの側面で混乱してるとに存在していないようだ「スタックオーバーフロー」を含むことになり、コンテンツがRuby on Railsでユーザーから入力された入力からURLを生成する

<%= form_for @post, url: user_posts_path(@user) do |f| %> 
<%= f.text_field :title, :class => 'form-control', :type => "title", :placeholder => "title" %> 
<%= f.text_field :content, :class => 'form-control', :type => "text", :placeholder => "URL" %> 
<%= f.submit "Submit" %> 
<% end %> 

「www.stackoverflow.com」になります私が求めていることを文書ではっきりとしたものにしてください。以下のコードは、私が物事をどのようにルーティングしているかを示しています。これは、ユーザーを投稿のルートに誘導することによって機能します。

<%= link_to post.title, user_post_path(post.user_id, post.id) %> 

私が代わりに欲しいのは、それはこの場合のpost.contentでポストの実際の内容は、となります代わりにuser_post_pathのこの

<%= link_to post.title, url(post.content)%> 

「www.stackoverflowようなものを持っていることです.com "私はRoRを初めて使ったのでこれが可能かどうか分かりませんが、この問題を解決するための提案は大変ありがとうございます!

答えて

2

link_toは、hrefとして単純な文字列を受け入れます。ただし、テキストが有効なURLであることを確認するために、URI.parseを使用することをおすすめします。

<%= link_to post.title, URI.parse(post.content) %> 

また、content属性に保存されているテキストにURLが含まれていることを確認する必要があります。レコードを保存する前にURI.extractメソッドを使用して、フィールド内、コントローラー内、またはモデルコールバック内のJSを使用してこれを実現できます。

0

あなたはこのように直接あなたのリンクにクエリパラメータを渡すことができます。

link_to "Ruby on Rails search", controller: "searches", query: "ruby on rails" 

<a href="/searches?query=ruby+on+rails">Ruby on Rails search</a> 
関連する問題