我是铁杆新手并且遇到路线问题。提交链接时,它应该转到“http://example.com”,尽管它现在转到localhost:3000 / links / www.example.com 我正在运行ruby 3.2.8和ruby1.9.3p194。不确定需要多少信息。这就是它的所在。 在我看来,我有:
<p>
<h1><%= @link.title %></h1>
<%= link_to @link.url, @link.url %><br />
<p>Posted by: <% @link.user %> at <%= @link.created_at %></p>
</p>
我的控制器设置为:
class LinksController < ApplicationController
def show
@link = Link.find(params[:id])
end
before_filter :authenticate_user!
def new
@link = Link.new
end
def create
@link = Link.new(params[:link])
respond_to do |format|
if @link.save
format.html { redirect_to @link, notice: 'Link was successfully created.' }
format.json { render :json => @link, status: :created, location: @link }
else
format.html { render :action => "new" }
format.json { render :json => @link.errors, :status => :unprocessable_entity }
end
end
end
end
在我的development.rb文件中,我有:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
我的路线是:
resources :pages
resources :links
root :to => "pages#index"
经过无数次搜索,我从没有运气,因为我是初学者。有关如何重置链接路径的任何建议都非常感激。
答案 0 :(得分:1)
此处与路线或Rails无关。
如果您想要在网站外链接,则需要在链接前输出http://
。您在提交链接时输入文本框,或修改代码以有条件地添加前缀:
<% link_href = @link.url %>
<% link_href = "http://#{link_href}" unless link_href.match(/^https?:\/\//) %>
<%= link_to @link.url, link_href %><br />