1
我試圖從視圖傳遞一個變量到控制器。但是,即使包含了,控制器參數也不包含參數。有人可以爲我檢查嗎? 感謝無法從視圖到控制器捕獲變量傳遞? Rails 4
show.html.erb
<div class="col-xs-8">
<p id="notice"><%= notice %></p>
<p>
<%= image_tag @post.avatar_url(:thumb).to_s %>
<br>
<strong>Tag:</strong>
<%= @post.tag %>
</p>
<%= button_to "Add New Version", versions_path(:pid => "123"), :class => "btn btn-default", :method => :get %>
<%= link_to 'Edit', edit_post_path(@post) %> |
<%= link_to 'Back', posts_path %>
</div>
我試圖點擊該網頁上添加新的版本... ...,它會去版本#指數
,所以這是我的版本索引。
class VersionsController < ApplicationController
layout "loginpage"
#before_action :set_version, only: [:show, :edit, :update, :destroy]
def index
@heading = "Add new version"
@effect = Effect.new
p "hello world"
p params
p params[:pid]
p @effect
p "hello owlrd"
我試圖打印出PARAMS,看看是否存在一個PID PARAM,繼承人的輸出
Started GET "/versions" for 127.0.0.1 at 2014-10-18 19:17:28 +1100
Processing by VersionsController#index as HTML
"hello world"
{"action"=>"index", "controller"=>"versions"}
nil
#<Effect id: nil, effect1: nil, effect2: nil, effect3: nil, created_at: nil, updated_at: nil>
"hello owlrd"
好像我不能把PID爲PARAMS。
的routes.rb
Rails.application.routes.draw do
resources :trashes
resources :versions
resources :effects
devise_for :users
resources :posts
resources :homes
# routing to the login page
devise_scope :user do
root :to => 'devise/sessions#new'
end
耙路線
Prefix Verb URI Pattern Controller#Action
trashes GET /trashes(.:format) trashes#index
POST /trashes(.:format) trashes#create
new_trash GET /trashes/new(.:format) trashes#new
edit_trash GET /trashes/:id/edit(.:format) trashes#edit
trash GET /trashes/:id(.:format) trashes#show
PATCH /trashes/:id(.:format) trashes#update
PUT /trashes/:id(.:format) trashes#update
DELETE /trashes/:id(.:format) trashes#destroy
versions GET /versions(.:format) versions#index
POST /versions(.:format) versions#create
new_version GET /versions/new(.:format) versions#new
edit_version GET /versions/:id/edit(.:format) versions#edit
version GET /versions/:id(.:format) versions#show
PATCH /versions/:id(.:format) versions#update
PUT /versions/:id(.:format) versions#update
DELETE /versions/:id(.:format) versions#destroy
effects GET /effects(.:format) effects#index
POST /effects(.:format) effects#create
new_effect GET /effects/new(.:format) effects#new
edit_effect GET /effects/:id/edit(.:format) effects#edit
effect GET /effects/:id(.:format) effects#show
PATCH /effects/:id(.:format) effects#update
PUT /effects/:id(.:format) effects#update
DELETE /effects/:id(.:format) effects#destroy
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
homes GET /homes(.:format) homes#index
POST /homes(.:format) homes#create
new_home GET /homes/new(.:format) homes#new
edit_home GET /homes/:id/edit(.:format) homes#edit
home GET /homes/:id(.:format) homes#show
PATCH /homes/:id(.:format) homes#update
PUT /homes/:id(.:format) homes#update
DELETE /homes/:id(.:format) homes#destroy
root GET / devise/sessions#new
我認爲這是一個路由問題,你是否設置了索引方法來接收pid作爲動態段的路由。但是如果修改index方法的路由,你將面臨另一個問題,所以':pid'作爲動態段傳遞,show方法的路由將會發生衝突,因爲兩個路由將具有相同的簽名,即'controller_name/dynamic_segment' + plus都將使用相同的'http verb' – 2014-10-18 08:32:15
讓我更新它並粘貼我的routes.rb。我查了很多帖子,他們說這會起作用。 – 2014-10-18 08:37:02
你能展示從'versions_path(:pid =>「123」)生成的url嗎?'你可以在瀏覽器中加載視圖後獲取這個url。 – 2014-10-18 08:39:23