我是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>
答案 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" %>