Samantha O
Joined
Activity
I would like this too ;)
Posted in How do I display my uploaded picture?
Hi John, then I get "The asset "avatar.jpeg" is not present in the asset pipeline."
I am missing something I think.
Posted in How do I display my uploaded picture?
In my view, I have this to upload an avatar. When I want to edit, the picture is gone and how do I view my uploaded picture in my show view? I don't make use of any gems.
<div class="inputfield">
<%= f.label :avatar %>
<%= f.label :avatar do %>
<%= image_tag("avatarbackground", class: "avatar-bg",
alt: "avatar image", id: "avatar-background", type:
"file") %>
<% end %>
<%= f.file_field :avatar, class: "hidden" %>
<%= f.hidden_field :avatar_cache %>
</div>
In my show view I use this:
<%= image_tag image_url(@store.avatar) %>
Posted in F.submit not creating object
Hi,
I have a Store object with some nested attributes which I display in a wizard. But when I want to press the submit button, nothing happens and doesn't create a store.
I use <%= f.submit class: "nextbtn", data: {disable_with: false} %>
Let's say I have an attribute :year_of_birth for example and another field :age (readonly), I fill in the year_of_birth. And I make a method in a model to calculate the age, how does the age get populated in the view?
Thanks in advance
Hi,
I'm trying to create an account from a popup form. But I get the first argument in form cannot contain nil or be empty. What am I doing wrong?
class AccountsController < ApplicationController
def index
# @accounts = Account.all
end
def new
@account = Account.new
@account.users.build
end
def create
@account = Account.new(account_params)
if @account.save
sign_in @account.users.first, bypass: true
redirect_to new_store_path
# redirect_to dashboard_index_path
else
render :new
end
end
def destroy
@account = Account.find(params[:id])
@account.destroy
redirect_to root_path, notice: "Account deleted."
end
private
def account_params
params.require(:account).permit(users_attributes: [:email, :password, :password_confirmation, :role])
end
end
<div class="modal modal--hidden">
<%= link_to root_path, class: "close-modal" do %>
<svg class="svg-icon">
<%= svg "close" %>
</svg>
<% end %>
<header class="modal--header">
<div></div>
<div class="header_title">Register</div>
</header>
<div class="modal__content">
<%= form_for @account, url: { controller: "account", action: "new" } do |f| %>
<%= f.fields_for :users do |user| %>
<div class="reg-form">
<div class="inputfield">
<%= user.hidden_field :role, value: :store_owner %>
</div>
<div class="inputfield">
<%= user.email_field :email, autofocus: true, autocomplete: "email", placeholder: "name@address.com" %>
</div>
<div class="inputfield">
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %>
<%= user.password_field :password, autocomplete: "new-password", placeholder: "Password" %>
</div>
<div class="inputfield">
<%= user.password_field :password_confirmation, autocomplete: "new-password", placeholder: "Password Confirmation" %>
</div>
<div class="submitinputfield1">
<%= f.submit "Sign up" %>
</div>
</div>
<% end %>
<% end %>
I got this working with javascript.
<%= link_to "Get started", { id: "store-sign-up" } %>
document.addEventListener("DOMContentLoaded", () => {
var modal = document.querySelector('.modal')
var el = document.getElementById("store-sign-up")
if(el) {
document.getElementById("store-sign-up").addEventListener('click', () => {
modal.classList.remove('modal--hidden');
});
document.querySelector(".close-modal").addEventListener('click', () => {
modal.classList.add('modal--hidden');
});
}
});
Hi,
I am trying to build a modal popup when pushing a link_to button. How do I accomplish this? The modal doesn't popup yet, but is underneath my link_to button.
<div class="button-container">
<% if signed_in? && role == 1 %>
<%= link_to "Add a listing", new_store_path, class: "submitinputfield input " %>
<% else %>
<%= link_to "Get started", root_path, { :remote => true, data: { target: "#id01", toggle: "modal" } } %>
<div class="host-login-container">
<h2>CSS Animated Modal</h2>
<p>Some text some text</p>
<button onclick="document.getElementById('id01').style.display='block'" class="add-listing-btn">Open animated modal</button>
<div id="id01" class="modal hidden">
<div class="modal-content animate-top modal-card">
<header class="host-login-container teal">
<span onclick="document.getElementById('id01').style.display='none'" class="add-listing-btn display-top-right">×</span>
<h2>Modal header</h2>
</header>
<div class="host-login-container">
<p>Some text some text</p>
<p>Some text</p>
</div>
<footer class="host-login-container teal">
<p>Modal footer</p>
</footer>
</div>
</div>
</div>
<% end %>
</div>
Posted in Get started with Rolify for roles
@excid3 @Chris Oliver, I was wondering if you can still make this happen :D
So the question is, how do I make separate signups for store_owner and end_user? An example of this would be something like airbnb...There you can be a host (someone who rents out their home, or someone who rents a home from a host).
What is the best way to achieve this when people sign up? I have a user model and an account model. I want to have 3 roles in my application. The administrator, store_owner and end_user.
A store owner can add a store.
The end_user sees all the stores that a store_owner has added.
The administrator sees everything :)
For now I have:
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
enum type: [:administrator, :store_owner, :end_user]
enum gender: [:male, :female]
end
class Account < ApplicationRecord
enum status: [:active, :inactive, :expired, :locked]
has_many :users
before_create :set_api_key
accepts_nested_attributes_for :users
private
def self.generate_api_key
SecureRandom.hex(36)
end
def set_api_key
self.api_key = Account.generate_api_key
end
end
And in my signup view:
<%= form_for @account do |f| %>
<%= f.fields_for :users do |user| %>
<%= f.label :email %>
<%= user.email_field :email, autofocus: true, autocomplete: "email", placeholder: "name@address.com" %>
<%= f.label :password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %>
<%= user.password_field :password, autocomplete: "new-password", placeholder: "Password" %>
<%= f.label :password_confirmation %><br />
<%= user.password_field :password_confirmation, autocomplete: "new-password", placeholder: "Password" %>
<%= f.submit "Sign up" %>
In my accounts controller:
class AccountsController < ApplicationController
def index
end
def new
@account = Account.new
@account.users.build
end
def create
@account = Account.new(account_params)
if @account.save
sign_in @account.users.first, bypass: true
redirect_to root_path
else
render :new
end
end
def destroy
@account = Account.find(params[:id])
@account.destroy
redirect_to root_path, notice: "Account deleted."
end
private
def account_params
params.require(:account).permit(users_attributes: [:email, :password, :password_confirmation])
end
end
It works!
I had to add a form_for block in the view and pass the pricingclassification object.
<%= form_for :pricing_classification do |f| %>
<%= f.label :pricing_classification %>
<%= select_tag nil, options_for_select(range_options, range_string(PricingClassification.new)), data: { action: "change->range#change" } %>
<%= f.hidden_field :minimum, data: { target: "range.minimum" } %>
<%= f.hidden_field :maximum, data: { target: "range.maximum" } %>
<% end %>
Hi,
I have a Store model and a PricingClassification model. The PricingClassification belongs to Store. I have made a wizard for creating a store and I am trying to add a range in pricingClassification. But I get the undefined method `minimum' for #Store:0x00007fb25c749b20
What am I missing or doing wrong?
class Store < ApplicationRecord
has_many :pricing_classifications, dependent: :destroy
end
class PricingClassification < ApplicationRecord
belongs_to :store
end
module PricingClassificationsHelper
def range_string(pricing_classification)
"#{pricing_classification.minimum}-#{pricing_classification.maximum}"
end
end
While creating a new store I have this in my view.
<%= f.label :pricing_classification %>
<%= select_tag nil, options_for_select(range_options, range_string(f.object)) %>
<%= f.hidden_field :minimum %>
<%= f.hidden_field :maximum %>
Posted in How do I add ranges to my application?
Awesome! I also send you a slack private message for 2 screencast ideas :S Thank you
Posted in How do I add ranges to my application?
Do you have an example of number 2? I'm fairly new to programming :S
Posted in How do I add ranges to my application?
Hi Chris,
Thanks for the reply. How do I get this in a dropdown? Like this example: https://www.wix.com/corvid/forum/community-discussion/single-dropdown-filter-using-a-range
Posted in Advanced Search, Autocomplete and Suggestions with ElasticSearch and the Searchkick gem Discussion
I sure hope Chris will do this soon :)
Posted in How do I add ranges to my application?
Hi in my app I want to have a price classification table where I want to add a range per person...
For example: range_per_person = 1-10, 11-20, 21-30 etc etc.
How can I achieve this? See my schema below.
create_table "pricing_classifications", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci", force: :cascade do |t|
t.string "name"
t.integer "range_per_person"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
Hi Chris,
I added English and Dutch translations, but when I switch to Dutch(nl), I don't see the translations...Any idea where I might have gone wrong? In the nl.yml file the first line is nl:
Thanks in advance
Thanks Tim, I will have a look at it :)