0

我是 Rails 新手,我的路线有问题。提交链接后,它应该转到“ http://example.com ”,尽管它现在转到 localhost:3000/links/www.example.com 我正在运行 ruby​​ 3.2.8 和 ruby​​1.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"

经过无数次的搜索,由于我是初学者,我一直没有运气。非常感谢任何有关如何重置链接路径的建议。

4

1 回答 1

1

这里与路由或 Rails 无关。

http://如果你想链接异地,你需要在你的链接前面输出。提交链接时在文本框中输入,或修改代码以有条件地添加:

<% link_href = @link.url %>
<% link_href = "http://#{link_href}" unless link_href.match(/^https?:\/\//) %>
<%= link_to @link.url, link_href %><br />
于 2013-07-23T21:20:47.167 回答