我刚开始在rails上使用ruby,使用rubymine包并遵循教程。
我们创建了一个名为say
的控制器,如下所示:
class SayController < ApplicationController
def Hello
end
end
我启动了rails服务器并在localhost:3000
上获取了该页面,但当我尝试localhost:3000/say/hello
时,我得到了:
No route matches [GET] "/say/hello"
我尝试将routes.rb
内的文件config
更改为:
root 'say#index'
但没有快乐,仍然是同样的错误。我希望我已经提供了足够的信息,感谢您的反馈。
答案 0 :(得分:0)
当你跟随<form name="formName">
<div id="groupA">
GroupA checkbox list:
<br>
<input type='checkbox' name='groupA[]' value='Val1' onclick="onClickFunction()">Val1
<br>
<input type='checkbox' name='groupA[]' value='Val2' onclick="onClickFunction()">Val2
<br>
<input type='checkbox' name='groupA[]' value='Val3' onclick="onClickFunction()" checked>Val3
<br>
<input type='checkbox' name='select_all_groupA' value='All' onclick="onClickFunction()" checked>All
<br>
</div>
<div id="groupB">
GroupB checkbox list:
<br>
<input type='checkbox' name='groupB[]' value='ValX' onclick="onClickFunction()">ValX
<br>
<input type='checkbox' name='groupB[]' value='ValY' onclick="onClickFunction()" checked>ValY
<br>
<input type='checkbox' name='select_all_groupB' value='All' onclick="onClickFunction()" checked>All
<br>
</div>
</form>
:
routes.rb
告诉我们,当用户访问root 'say#index'
时,它会调用/
个控制器say
操作。但是,因为您希望index
路由调用&#39;说#index&#39;那么你的/say/hello
应该是这样的:
routes.rb
如果您在窗口并获得get '/say/hello', to: 'say#Hello'
,那么您可以替换&#34; application&#34;用&#34;默认&#34;您的ExecJS::ProgramError
或您可以在您的Gemfile中执行此操作:gem&#39; coffee-script-source&#39;,&#39; 1.8.0&#39;强制1.8.0,然后发出捆绑更新coffee-script-source。咖啡脚本来源&gt; = 1.9.0无法在Windows下正常运行。
答案 1 :(得分:0)
首先:将您的hello
方法重构为全部小写,如下所示:
class SayController < ApplicationController
def hello
end
end
现在回答你的问题:
路径文件就像一个指南,它将给定的路径host/path/options
映射到给定的控制器方法。 root 'say#index'
其中say
是您的控制器,index
是指定控制器中的方法。
例如,将您拥有的路线作为实例,
root 'say#index'
表示将index
控制器的say
操作设置为默认路由。(在页面加载时)
但请注意,您
index
尚未执行SayController
次行动
这样说,这意味着要将hello
中的SayController
操作作为默认路由,您需要执行以下操作:
root 'say#hello'
然后,当您转到localhost:3000
时,您会看到您的页面。
另一方面,如果您不想将其作为根,则只需指定它将支持的http
方法类型(get
,{{1} },post
或put
)如下:
delete
现在,当你转到get '/say/hello' => 'say#hello'
时,你会得到你的页面。
希望这足够说明......