Ruby on Rails
Monday, December 8, 2014
Im at the home page and I want to make a link to /card/:id
According to rake routes I have to use cart_path.
The carts route looks like this :
class CartsController < ApplicationController
before_action :set_cart, only: [:show, :edit, :update, :destroy]
def index
@carts = Cart.all
end
@carts = Cart.all
end
def show
end
end
def new
@cart = Cart.new
end
@cart = Cart.new
end
Which uses this file :
module CurrentCart
extend ActiveSupport::Concern
private
def set_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end
extend ActiveSupport::Concern
private
def set_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end
So I have to figure out how to make the id of the card avaible on the url.
Roelof
Op maandag 8 december 2014 14:38:20 UTC+1 schreef Vivek Sampara:
If you're on "/cards/:id", then look at your cards_controller.rb , you'd see @card defined , hence you should use <li><%= link_to '<i class="fa fa-money"></i> Card'.html_safe, cart_path(@card) %> </li>But why would you goto to the show page ( /cards/:id/ ) when you're already on the page ? regarding the cart, You have to follow the same procedure. define @cart in the controller/action and use it like this<li><%= link_to '<i class="fa fa-money"></i> Card'.html_safe, cart_path(@cart) %> </li>If you can give more info on what you're trying to do (app structure) , We can help you a bit better :)PS: i haven't read the bookCheersVivekOn Mon, Dec 8, 2014 at 7:00 PM, Roelof Wobben <rwo...@hotmail.com> wrote:--Hello,It's is the form of /cards/:idI tried<li><%= link_to '<i class="fa fa-money"></i> Card'.html_safe, cart_path(cart) %> </li><li><%= link_to '<i class="fa fa-money"></i> Card'.html_safe, cart_path(card) %> </li>but on both I see this message :undefined local variable or method `cart'undefined local variable or method `card'
Roelof
Op maandag 8 december 2014 14:23:33 UTC+1 schreef Vivek Sampara:What is the url you're using to show this on a separate page ?if its in the pattern of "/cards/:id/something" then you dont have to provide the card path as rails picks up @card object to build the path or you'll have to pass the card variable inside the path method.eg<% @cards.each do |card| %><li><%= link_to '<i class="fa fa-money"></i> Card'.html_safe, cart_path(card) %> </li><% end %>This way, rails would know "which" exact card this link should take them to.On Mon, Dec 8, 2014 at 6:48 PM, Roelof Wobben <rwo...@hotmail.com> wrote:--Hello,I follow the Agile Web development book.Now as a extra challenge I try to make the card visible on a seperate page.So I made this link :<li><%= link_to '<i class="fa fa-money"></i> Card'.html_safe, cart_path %> </li>But now I see the above error message.When I do card_path (:id) I see a message that there is no card with the id of id.Roelof
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com .
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/9442f58f- .58b5-475e-823d-c797431c41c3% 40googlegroups.com
For more options, visit https://groups.google.com/d/optout .
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com .
To post to this group, send email to rubyonra...@googlegroups.com .
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/ .46cea06c-0a2c-41e2-88c5- b3516c76c504%40googlegroups. com
For more options, visit https://groups.google.com/d/optout .
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/7c0f7fbf-6349-4655-9962-21263fe3951e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment