新手问题 关于 submit 跳转 网页

anleb · June 04, 2012 · Last by Anleb replied at June 04, 2012 · 5205 hits

首先,我水平差,不代表我一直差,以后我会慢慢提有深度的问题。

环境:有 2 个网页 需求:需要在第一个网页提交 submit 到 control 上处理,然后在从 2.html.erb 自动显示

1.html.erb 代码:

<form action="say" method="post">
    name:<input type=text name="name" value="">
    <br>
    age:<input type=text name="age" value="">
    <br>
    <input type=submit name="age" value="提交">
    <br>
</form>

2.html: 代码:

name:<% =@name -%>
age:<%% =@age -%>

control:


class LoveController < ApplicationController
    def say
        @name=params[:name]
        @age=params[:age]
        redirect_to "work"
    end

end

问题: 现在点击 submit 按钮出现错误: Routing Error

No route matches [POST] "/say"

Try running rake routes for more information on available routes.

原因是:我不会写跳转

望大家帮助我。

我也是新手,不过看到你这样把代码贴上来,估计又要被屌了~

m #1 楼 @Levan 我不知道怎么贴代码。。。悲剧

输入框下面有提示。照做.然后修改下。

Routing Error

需要修改你的 Routes

Post

Unknow user #5 June 04, 2012

form 的 action 应该和路由匹配,config/routes.rb 里写匹配路由和 controller 的 action 的代码。 我也新手,但我学过 html。目测 lz 没学过 html 所以把这两个'action'搞混了。建议一块一块的搬砖,不要妄图几天就能建长城

Unknow user #6 June 04, 2012
match "/say", :to => "Love#say", :via => :post

建议你照着 rubyonrails 官网的 get start 的例子开始

下面这个是 ruby-china 的路由

resources :topics do
  member do
    post :reply
    post :favorite
    post :profile
    post :follow
    post :unfollow
  end
  collection do
    get :search
    get :feed
    post :preview
  end
  resources :replies
  resources :profiles
end

所以在你的 config/routes.rb 里要加类似以下的代码:

resources :love do
  member do
    post :say
  end
end

有一个疑问就是,love 的复数形式还是 love 吗?"love".pluralize 试试看。

#7 楼 顶起@kevinhua 呵呵。我来做实验:

[2] pry(main)> require "activesupport"
=> true
[3] pry(main)> "love".pluralize
=> "loves"

大家说了这么多,6 楼最实用。 跳转,可以在 action 里,render :action =>"blah blah" 具体你可以 Google render.

谢谢大家,忘看了,我自己搞定额,嘿嘿,谢谢大家。。

You need to Sign in before reply, if you don't have an account, please Sign up first.