我希望用户在表单中提交标题和网址链接。 然后我想将该标题呈现为包含网址的链接。 因此,在下面的表格中,标题将包含“Stack Overflow”,内容将为“www.stackoverflow.com”
<%= 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 %>
我仍然对Rails的某些方面感到困惑,并且在我所要求的文档中似乎没有任何明确的内容。下面的代码是我现在如何路由的东西,它通过将用户带到帖子的节目路线来工作。
<%= link_to post.title, user_post_path(post.user_id, post.id) %>
我想要的是拥有这样的东西
<%= link_to post.title, url(post.content)%>
而不是user_post_path它将是帖子的实际内容,在这种情况下是post.content,这将是“www.stackoverflow.com”我不知道这是否可能,因为我是新来的RoR但任何建议非常感谢解决这个问题,谢谢!
答案 0 :(得分:2)
link_to
将接受一个简单的字符串作为href。我建议使用URI.parse
,以确保文本是有效的网址。
<%= link_to post.title, URI.parse(post.content) %>
您还应确保content属性中保存的文本仅包含URL。您可以在保存记录之前使用URI.extract方法在字段,控制器或模型回调中使用JS来实现此目的。
答案 1 :(得分: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>