scaffoldで簡単にアプリを作ったとします。
lang
1rails g scaffold User user:string name:string
上記のコマンドを実行しますと自動的にコードが作成されます。
app/views/users/index.htmlのソース内の
lang
1<%= link_to 'New User', new_user_path %>
この部分をリンクではなくボタンに変更したいのですが、リンクボタンに変更するにはどうしたら良いでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ボタンはフォーム内になければならないので、単に link_to を button_to に直しても上手くいきません。
ボタン風でよければ、CSS でリンクをボタンのように見せるのが、手っ取り早いのではないかと思います。
リンクの方に html の class を付けておいて、CSS ファイルの方でその class に対してボタンに見えるような定義をしておきます。
<%= link_to 'New User', new_user_path, class:"btnlike" %>
CSS の記述の方はボタン風の CSS のジェネレーターなどがあるので、そちらを使えば好みものが作れます。
投稿2014/08/26 04:32
総合スコア863
0
No route matches [POST] "/users/new"
と出てしまいました。
/users/new を POST で呼び出せるようにすることが可能です。
config/routes.rb を次の様に編集してみてください。
lang
1 resources :users 2 post 'users/new' => 'users#new'
2 行目に まさに post での呼び出しルールを追加しだけです。
$ rake routes とすると、どんな URL の呼び出しが可能かを確認できます。
編集した後なら次のような出力が得られるはずです。(編集前の出力とも比べてみてください)
Prefix Verb URI Pattern Controller#Action users GET /users(.:format) users#index POST /users(.:format) users#create new_user GET /users/new(.:format) users#new edit_user GET /users/:id/edit(.:format) users#edit user GET /users/:id(.:format) users#show PATCH /users/:id(.:format) users#update PUT /users/:id(.:format) users#update DELETE /users/:id(.:format) users#destroy users_new POST /users/new(.:format) users#new
一番最後の行に POST users#new の POST 呼び出しが表示されています。
この状態なら、<%= button_to("New User", :action =>'new') %> の button のクリックをすると、エラーにならずに新規ユーザー登録画面が表示されます。
投稿2014/08/26 12:36
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
methodオプションでgetを指定します。
lang
1<%= button_to 'New User', new_user_path, :method => :get %>
button_to はformタグを生成しますので
出来ればclass属性をしてスタイルシートでリンクをボタンに変更するのがいいのかもしれません。
投稿2014/08/26 04:11
総合スコア277
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2014/08/26 12:42
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2014/08/26 12:47