开发者

Rails forms -- accessing a variable that is not part of the form

I want to make a form for submitting the info needed to create an instance of model X and save it to the database, but I have a slight problem: I know how to add form fields like text areas and what not and then how to make those values accessible when the create method is called, but what if I want to also send make a value that is not 开发者_Python百科part of the form accessible? For example, what if I want to be able to access some text in a <div> of my html document and send that to the create method for model X (so it can be stored in like a content variable or something)? How do I do that?


Short answer is you can't - to send data to the server, it has to be in an form field.

Longer answer - there are ways around this and you have several options - put the text in a textarea and style it to look like an div, or put it in a hidden field when the template is created, or use javascript to copy it into a hidden field ... all depends on what you are trying to do really. Perhaps you could give some more detail?


In your model you want to use attr_accessor

What you can do is use attr_accessor which creates a virtual attribute that you can use in the model but is discarded after that.

For example:

app/models.post.rb

class Post < ActiveRecord::Base

  attr_accessor :some_variable 

  #now you can access 'some_variable' this variable in the model
  #try Post.some_variable in the console

end

app/views/posts/_form.html.erb

<div id="form"> 

      <div class="field">
        <%= f.label :some_variable  %> 
        <%= f.text_field :some_variable  %>
      </div>
      <div class="actions">
        <%= f.submit %>
      </div>
    <% end %>
</div>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜