Rails:链接到外部属性URL

时间:2018-02-13 13:03:28

标签: ruby-on-rails url controller attributes

我是Ror的新人, 我在我的应用程序上创建了一个会议索引页面,可以预订会议席位。 我想为此页面上的每个会议创建一个按钮,该按钮将target_blank重定向到外部URL。外部URL是我的表的字符串属性(预留)。 我找不到如何实现这个功能。提前帮忙。 这是我的代码:

schema.db:

 create_table "meetings", force: :cascade do |t|
    t.string "name"
    t.datetime "start_time"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.bigint "user_id"
    t.string "details"
    t.string "address"
    t.boolean "highlight"
    t.string "reservation"
    t.string "participation"
    t.index ["user_id"], name: "index_meetings_on_user_id"
  end

meetings.html.erb:

<% @meetings.each do |meeting| %>
  <strong><%= meeting.name %></strong>
  <br><%= meeting.details %><hr>
  <% if user_signed_in? %>
  <%= link_to "Book a seat", ??????, :target => "_blank" %>
<% end %>
<% end %>

会议/ _form.html.erb:

<%= simple_form_for(@meeting) do |f| %>
<div class="form-inputs">
<%= f.input :name %>
<%= f.input :start_time %>
<%= f.input :details %>
<%= f.input :address %>
<%= f.input :reservation %>
<%= f.input :participation %>
<%= f.check_box :highlight %> Mettre en avant cet évènement
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>

2 个答案:

答案 0 :(得分:0)

你可以将你的URL传递给link_to helper,如下所示:

<%= link_to "Book a seat", meeting.reservation, :target => "_blank" %>

答案 1 :(得分:0)

对于外部链接,您需要一个包含http的链接(例如:http://stackoverflow.com):

<%= link_to "your label", "your link with http", :target => "_blank" %>

所以它应该是

<%= link_to "Book a seat", meeting.reservation, :target => "_blank" %>

这将创建一个在新标签页中打开的链接。

如果您不确定以http开头的链接,可以使用:

<%= link_to "Book a seat", meeting.reservation.starts_with?('http') ? meeting.reservation : "http://#{meeting.reservation}", :target => "_blank" %>