作为网址发布回复

时间:2012-01-05 15:27:06

标签: ruby-on-rails

所以,我在我的控制器中有一个方法“创建”,但是一旦我创建了我的模型,而不是显示模型本身,我希望我的视图只显示该模型的URL,例如:“http:// www.myapp.com/model/1" 。

我在我的控制器中定义了另一个动作,称为“url”,一旦模型被保存(在create方法内),我这样做:

format.html { render :action => "url" }

所以在这个网址视图中,我想显示我的模型的完整网址。

如何将模型网址放在那里?

2 个答案:

答案 0 :(得分:2)

您可以使用每个控制器中可用的url_for方法。

url_for(:action => 'login', :controller => 'members', 
        :only_path => false, :protocol => 'http')

将导致(示例):

http://www.example.com/members/login/

来源:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-url_for


正如我之前所回答的那样(显然答案已被删除),您也可以通过给它一个对象来调用url_for(例如新创建的模型实例):

# Create a new instance of a model:
@new_order = Order.new(...)
# And then get the url for that specific instance's location:
url_for(@new_order)

希望我帮忙!

答案 1 :(得分:0)

您需要将操作添加到config / routes.rb

get "model", :to => "model#url"

或成员行动

get "model", :to => "model#url", :on => :member