在视图中,我包含了链接:
<%= link_to("Upgrade account", upgrade_path(@organization)) %>
此链接存在于标准“展示”视图/页面上。所以访问者已经开启了例如http://localhost/organizations/123,其中123是@ organization.id。所以定义了@organization。
在控制器中我有:
def upgrade
@organization = Organization.find(params[:id]) # This is the line that doesn't work
@actioncode = Actioncode.new
@amount = DEFAULT_PRICE
@currency = "EUR"
@description = @organization.id
@transaction_description = "MyDescription"
@transaction_type = "S"
@hash = hash(@description, @amount, @currency, @transaction_type)
render 'checkout'
end
但是,当我在show视图中单击开发中的链接时,我收到以下错误消息。
No route matches [GET] "/signup/upgrade.123"
有没有人知道出了什么问题?你会期望'升级/ 123',但如果我手动将浏览器地址栏中的地址更改为'upgrade / 123',我也会得到相同的结果。
在我的路线中:
post 'signup/upgrade' => 'organizations#upgrade', as: 'upgrade'
get 'signup/organization' => 'organizations#new', as: 'register'
get 'signup/register' => 'organizations#new_premium', as: 'register_premium'
post 'signup/register' => 'organizations#checkout', as: 'signup_checkout'
get 'signup/confirmation' => 'organizations#confirmation'
答案 0 :(得分:1)
尝试更新您的路线
post 'signup/upgrade/:id'
您无法在浏览器的地址栏中测试此网址,因为这会提交GET而不是POST
答案 1 :(得分:0)
您有post
的路线,并且您正尝试使用get
获取网址。
btw:使用rake routes
查看您的路线